2.5.6.1 How to define a blob using C++
TL;DR: Use PL_BLOB_DEFINITION() to define the blob with the
flag
PL_BLOB_NOCOPY and the default PlBlob
wrappers; define your struct as a subclass of PlBlob with
no copy constructor, move constructor, or assignment operator; create
blob using
std::unique_ptr<PlBlob>(new ...), call
PlTerm::unify_blob(). Optionally, define one or more of:
compare_fields(), write_fields(), save(), load() methods (these are
described after the sample code).