Defining the virtual constructors for your objects type is also a simple matter. Unlike the case of the serialisation routines, they can even be done inline in the class definition:
class foo: public object { ... virtual object *lnew() {return vnew(this);} virtual object *lcopy() {return vcopy(this);} };