[odb-users] Passing persistence object to smart pointer
Boris Kolpackov
boris at codesynthesis.com
Thu Feb 24 09:52:15 EST 2011
Hi,
Bright Dadson <losintikfos at yahoo.co.uk> writes:
> I tried auto_ptr<person> joan(new person());
>
> [...]
>
> /usr/local/include/odb/database.ixx:40: error: invalid initialization of
> reference of type ‘person* const&’ from expression of type ‘const
> std::auto_ptr<person>’
By default ODB assumes the object pointer is the raw pointer (e.g.,
person*). If you want to use auto_ptr as the object pointer, you can
run the ODB compiler with the following option:
--default-pointer std::auto_ptr
Alternatively, if you don't want to change the object pointer, then
you can always pass a reference instead of a pointer to the database
functions, for example:
db->persist (*joan);
Boris
More information about the odb-users
mailing list