• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • CPACK
    • Home
    • List packs
    • Submit pack
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

1 A C++ interface to SWI-Prolog
All Application Manual Name SummaryHelp

  • Documentation
    • Reference manual
    • Packages
      • A C++ interface to SWI-Prolog
        • A C++ interface to SWI-Prolog
          • Summary of changes between Versions 1 and 2
          • A simple example
          • Sample code
          • Introduction
          • The life of a PREDICATE
          • Overview
          • Examples
          • Rationale for changes from version 1
          • Porting from version 1 to version 2
          • The class PlFail
          • Overview of accessing and changing values
          • The class PlRegister
          • The class PlQuery
          • The PREDICATE and PREDICATE_NONDET macros
          • Exceptions
          • Embedded applications
          • Considerations
          • Conclusions

1.18 Conclusions

In this document, we presented a high-level interface to Prolog exploiting automatic type-conversion and exception-handling defined in C++.

Programming using this interface is much more natural and requires only little extra resources in terms of time and memory.

Especially the smooth integration between C++ and Prolog exceptions reduce the coding effort for type checking and reporting in foreign predicates.

Index

?
add/3
1.7.2
add_num/3
1.3
arg/3
1.11.4
as_string()
as_wstring()
assert
1.13.1
at_halt/1
1.6.8.6
atom_chars/2
1.6.6 1.11.8
atom_or_string_as_string()
atomic/1
1.11.5
atomic_as_string()
average/3
1.3 1.7.3
between/3
1.3
blob_data()
call()
can_unify/2
1.3 1.13.1
cappend/3
1.3
check_stream()
close_my_blob/1
1.6.8.6 1.6.8.6 1.6.8.6
create_my_blob/2
1.6.8.6
data()
duplicate()
entry/1
1.11.10
eq1/1
1.3
eq2/2
1.3
eq3/2
1.3
erase()
error/2
1.17.2
fail/0
1.5
find()
functor/3
1.3
happy/1
1.3
hello/1
1.7.1
int_info/2
1.3
is_null()
is_valid()
likes/2
1.3
load_foreign_library/1
1.14.3
my_blob_properties/2
1.6.8.6
my_file_close/1
1.6.8.8
my_file_open/4
1.6.8.8
name_arity()
name_arity/3
1.3
nify_term()
not_null()
open/3
1.15.1.2
operator!=()
operator<()
operator<=()
operator=()
operator==()
operator>()
operator>=()
print_message/2
1.15.1
qsave_program/[1,2]
1.6.8.6
range_cpp/3
1.3
read/1
1.11.9
register_atom()
reset()
reset_term_refs()
size_tindex()
square_roots/2
1.3
term()
throw/1
1.1 1.5
unifiable/3
1.3
unregister_atom()
use_foreign_library/1
1.5
word/1
1.13.1
write()
write/1
1.7.1 1.11.1
write_list/1
1.3
NAMED_PREDICATE()
NAMED_PREDICATE_NONDET()
P
PlAtom!=()
PlAtom()
PlAtom==()
PlAtomkey,ValueTypevalue()
PlBlob::acquire()
PlBlob::compare_fields()
PlBlob::write_fields()
PlBlob::PlBlob::load()
PlBlob::PlBlob::pre_delete()
PlBlob::PlBlob::save()
PlCall()
PlCheckFail()
PlEx()
PlFrame::close()
PlFrame::discard()
PlFrame::rewind()
PlQuery
1.13
PlQuery::cut()
PlQuery::next_solution()
PlRecord()
 PlRecord()
PREDICATE()
PREDICATE0()
PREDICATE_NONDET()
PlRewindOnFail()
PlStream::release()
PlTerm!=()
PlTerm::arity()
PlTerm::as_atom()
PlTerm::as_bool()
PlTerm::as_double()
PlTerm::as_float()
PlTerm::as_int()
PlTerm::as_int32_t()
PlTerm::as_int64_t()
PlTerm::as_long()
PlTerm::as_nil()
PlTerm::as_pointer()
PlTerm::as_size_t()
PlTerm::as_string()
PlTerm::as_uint()
PlTerm::as_uint32_t()
PlTerm::as_uint64_t()
PlTerm::as_ulong()
PlTerm::as_wstring()
PlTerm::call()
PlTerm::compare()
PlTerm::copy_term_ref()
PlTerm::eq_if_atom()
PlTerm::free_term_ref()
PlTerm::free_term_ref_reset()
PlTerm::get_arg()
PlTerm::get_atom()
PlTerm::get_atom_ex()
PlTerm::get_atom_nchars()
PlTerm::get_attr()
PlTerm::get_blob()
PlTerm::get_bool()
PlTerm::get_bool_ex()
PlTerm::get_char_ex()
PlTerm::get_chars()
PlTerm::get_compound_name_arity()
PlTerm::get_dict_key()
PlTerm::get_file_name()
PlTerm::get_float()
PlTerm::get_float_ex()
PlTerm::get_functor()
PlTerm::get_head()
PlTerm::get_int64_ex()
PlTerm::get_integer()
PlTerm::get_integer_ex()
PlTerm::get_intptr()
PlTerm::get_intptr_ex()
PlTerm::get_list()
PlTerm::get_list_chars()
PlTerm::get_list_ex()
PlTerm::get_list_nchars()
PlTerm::get_long()
PlTerm::get_long_ex()
PlTerm::get_module()
PlTerm::get_name_arity()
PlTerm::get_nchars()
PlTerm::get_nil()
PlTerm::get_nil_ex()
PlTerm::get_pointer()
PlTerm::get_pointer_ex()
PlTerm::get_size_ex()
PlTerm::get_tail()
PlTerm::get_uint64_ex()
PlTerm::get_wchars()
PlTerm::integer()
PlTerm::is_acyclic()
PlTerm::is_atom()
PlTerm::is_atom_or_string()
PlTerm::is_atomic()
PlTerm::is_attvar()
PlTerm::is_blob()
PlTerm::is_callable()
PlTerm::is_compound()
PlTerm::is_dict()
PlTerm::is_float()
PlTerm::is_functor()
PlTerm::is_ground()
PlTerm::is_integer()
PlTerm::is_list()
PlTerm::is_number()
PlTerm::is_pair()
PlTerm::is_rational()
PlTerm::is_string()
PlTerm::is_variable()
PlTerm::must_be_acyclic()
PlTerm::must_be_atom()
PlTerm::must_be_atom_or_string()
PlTerm::must_be_atomic()
PlTerm::must_be_attvar()
PlTerm::must_be_callable()
PlTerm::must_be_compound()
PlTerm::must_be_dict()
PlTerm::must_be_float()
PlTerm::must_be_ground()
PlTerm::must_be_integer()
PlTerm::must_be_list()
PlTerm::must_be_number()
PlTerm::must_be_pair()
PlTerm::must_be_rational()
PlTerm::must_be_string()
PlTerm::must_be_variable()
PlTerm::name()
PlTerm::put_atom()
PlTerm::put_atom_chars()
PlTerm::put_atom_nchars()
PlTerm::put_blob()
PlTerm::put_bool()
PlTerm::put_chars()
PlTerm::put_float()
PlTerm::put_functor()
PlTerm::put_integer()
PlTerm::put_list()
PlTerm::put_list_chars()
PlTerm::put_list_codes()
PlTerm::put_list_nchars()
PlTerm::put_list_ncodes()
PlTerm::put_nil()
PlTerm::put_pointer()
PlTerm::put_string_chars()
PlTerm::put_string_nchars()
PlTerm::put_term()
PlTerm::put_variable()
PlTerm::record()
PlTerm::type()
PlTerm::unify_atom()
PlTerm::unify_blob()
PlTerm::unify_bool()
PlTerm::unify_bool_ex()
PlTerm::unify_chars()
PlTerm::unify_float()
PlTerm::unify_functor()
PlTerm::unify_integer()
PlTerm::unify_list()
PlTerm::unify_list_chars()
PlTerm::unify_list_codes()
PlTerm::unify_list_ex()
PlTerm::unify_nil()
PlTerm::unify_nil_ex()
PlTerm::unify_pointer()
PlTerm::unify_string()
PlTerm::unify_term()
PlTerm<()
PlTerm<=()
PlTerm==()
PlTerm>()
PlTerm>=()
PlTerm[]()
PlTerm_tail::append()
PlTerm_tail::close()
PlTerm_tail::next()
PlTermScoped::get()
PlTermScoped::release()
PlTermScoped::reset()
PlTermScoped::swap()
PlTermScoped=()
PlTerm::get_file_nameW()
PlWrap()
T
plThrow()
V
template<ValueType,StoredValueType>AtomMap::AtomMap()

ClioPatria (version V3.1.1-51-ga0b30a5)