[odb-users] raw pointer to application's global array
Boris Kolpackov
boris at codesynthesis.com
Thu May 29 09:40:05 EDT 2014
Hi,
MM <finjulhich at gmail.com> writes:
> Ok, but can I have a virtual member integer that stands for auto generated
> id? If not, I'll just add a integer (std::uintx_t) as a member of that
> struct, and use that as the auto id.
ODB-supported auto-id can only be a single data member of an integer
type. It cannot be a member of a struct. It can be a virtual data
member:
#pragma db member(my_id) virtual(unsigned long) id
> also, in the virt member pragma
>
> #pragma db member(foo) virtual(std::string) get(*this.foo_) set(set_foo)
>
> My foo_ is actually public.
>
> Can the setter be declared in the non intrusive header for the pragmas, as
> a non member function?
Yes, but then you will need to spell out the call expression explicitly:
class object
{
#pragma db member(foo) virtual(std::string) set(set_foo (this, (?)))
};
void set_foo (object& o, const std::string foo)
{
...
}
For more detail see the describtion of the accessor and modifier
expressions in the ODB manual (Section 14.4.5, "get/set/access").
Boris
More information about the odb-users
mailing list