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

  • Documentation
    • Reference manual
    • Packages
      • A C++ interface to SWI-Prolog
        • A C++ interface to SWI-Prolog (Version 1)
          • Introduction
          • Overview
          • Examples
          • The class PlTerm
          • The class PlTermv
          • Supporting Prolog constants
          • The class PlRegister
          • The class PlQuery
          • The PREDICATE macro
          • Exceptions
          • Embedded applications
          • Considerations
          • Conclusions

1.5 The class PlTermv

The class PlTermv represents an array of term-references. This type is used to pass the arguments to a foreignly defined predicate, construct compound terms (see PlTerm::PlTerm(const char *name, PlTermv arguments)) and to create queries (see PlQuery).

The only useful member function is the overloading of [], providing (0-based) access to the elements. Range checking is performed and raises a domain_error exception.

The constructors for this class are below.

PlTermv :: PlTermv(int size)
Create a new array of term-references, all holding variables.
PlTermv :: PlTermv(int size, term_t t0)
Convert a C-interface defined term-array into an instance.
PlTermv :: PlTermv(PlTerm ...)
Create a vector from 1 to 5 initialising arguments. For example:
load_file(const char *file)
{ return PlCall("compile", PlTermv(file));
}

If the vector has to contain more than 5 elements, the following construction should be used:

{ PlTermv av(10);

  av[0] = "hello";
  ...