The C++ bindings provide a less error prone version of libpmemobj through the implementation of a pmem-resident property, persistent pointers, scoped and closure transactions, locking primitives and many others.
Doxygen documentation is available:
The following series of blog articles provides a tutorial introduction to the C++ bindings: