2 A C++ interface to SWI-Prolog (Version 2)
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
    • Packages
      • A C++ interface to SWI-Prolog
        • A C++ interface to SWI-Prolog (Version 2)
          • Summary of changes between Versions 1 and 2
          • Introduction (version 2)
          • The life of a PREDICATE (version 2)
          • Overview (version 2)
          • Examples (version 2)
          • Rational for changes from version 1 (version 2)
          • Porting from version 1 to version 2
          • The class PlFail (version 2)
          • The class PlTerm (version 2)
          • The class PlTermv (version 2)
          • The class PlAtom - Supporting Prolog constants (version 2)
          • Unification and foreign frames (version 2)
          • The class PlRegister (version 2)
          • The class PlQuery (version 2)
          • The PREDICATE and PREDICATE_NONDET macros (version 2)
          • Exceptions (version 2)
          • Embedded applications (version 2)
          • Considerations (version 2)
          • Conclusions (version 2)

2.19 Conclusions (version 2)

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.3.2 2.5.2
arg/3
1.4.5 2.9.6
as_string()
as_wstring()
assert
1.8.1 2.14.1
atom_chars/2
1.2 1.4.9 2.4.2 2.9.10
average/3
1.3.3 2.5.3
blob_data()
entry/1
1.4.11 2.9.12
error/2
2.18.2
fail/0
2.3
hello/1
1.3.1 2.5.1
is_acyclic()
is_atom()
is_atomic()
is_callable()
is_compound()
is_dict()
is_float()
is_functor()
is_ground()
is_integer()
is_list()
is_null()
is_number()
is_pair()
is_rational()
is_string()
is_valid()
is_variable()
load_foreign_library/1
1.9.2 2.15.3
not_null()
open/3
1.10.3 2.16.3
print_message/2
1.10.1 2.16.1
read/1
1.4.10 2.9.11
register_atom()
reset()
throw/1
2.3
type()
unregister_atom()
use_foreign_library/1
2.3
word/1
1.8.1 2.14.1
write/1
1.3.1 1.4.2 2.5.1 2.9.3
NAMED_PREDICATE()
NAMED_PREDICATE_NONDET()
P
PlAtom
1.4.3 1.6
PlAtom!=()
PlAtom==()
PlCall()
PlCompound
1.4.5
PlDomainError
1.10
PlEngine
1.11
PlException
1.2 1.2 1.2 1.2 1.10 1.10 1.10 1.10.1 1.10.1 1.10.1
PlFrame
1.8.1 1.8.1 1.8.1 1.8.1 1.8.1 1.12.1
PlFrame::rewind()
PlQuery
1.3.3 1.5 1.8
PlQuery::cut()()
PlQuery::next_solution()
PlRegister
1.9
PREDICATE0()
PREDICATE_NONDET()
PlTail
1.4.11 1.4.11 1.4.11 1.4.11 1.4.11 1.4.11 1.4.11 1.4.11 1.4.11 1.4.11
PlTail::append()
PlTail::close()
PlTail::next()
PlTerm
1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.3.1 1.3.1 1.3.2 1.3.2 1.4 1.4.1 1.4.2 1.4.2 1.4.3 1.4.4 1.4.4 1.4.4 1.4.5 1.4.5 1.4.5 1.4.6 1.10 1.10.1 1.12.1
PlTerm!=()
PlTerm::arity()
PlTerm::compare()
PlTerm::name()
PlTerm::type()
PlTerm::unify_atom()
PlTerm::unify_blob()
PlTerm::unify_chars()
PlTerm::unify_float()
PlTerm::unify_functor()
PlTerm::unify_integer()
PlTerm::unify_list_chars()
PlTerm::unify_list_codes()
PlTerm::unify_nil()
PlTerm::unify_pointer()
PlTerm::unify_string()
PlTerm::unify_term()
PlTerm<()
PlTerm<=()
PlTerm=()
PlTerm==()
PlTerm>()
PlTerm>=()
PlTerm[]()
PlTermv
1.2 1.4.10 1.5 1.9
PlTypeEror
1.10 1.10.1
T
cppThrow()
plThrow()