Not all functionality of the C-interface is provided, but as
PlTerm and term_t are essentially the same 
thing with type-conversion between the two (using the unwrap() 
method), this interface can be freely mixed with the functions defined 
for plain C. For checking return codes from C functions, it is 
recommended to use PlCheckFail() 
or PlCheck_PL().
Using this interface rather than the plain C-interface requires a 
little more resources. More term-references are wasted (but reclaimed on 
return to Prolog or using PlFrame). Use of some 
intermediate types (functor_t etc.) is not supported in the 
current interface, causing more hash-table lookups. This could be fixed, 
at the price of slighly complicating the interface.
Global terms and atoms need to be handled slightly differently in C++ than in C - see section 1.17.3