[odb-users] sqlite, one to many relationship, std::map, std::weak_ptr

Daniel James danielpeterjames at gmail.com
Thu Jan 17 10:29:17 EST 2013

On 17 January 2013 15:20, Boris Kolpackov <boris at codesynthesis.com> wrote:

> Hi Daniel,
> Daniel James <danielpeterjames at gmail.com> writes:
> >   #pragma db inverse(parent)
> >   std::map<std::string, std::weak_ptr<Child>> children;
> You cannot use a map container for an inverse side of a relationship.
> While the ODB compiler does not yet diagnose this situation (I've
> added a TODO item), the ODB manual mentions this in Section 12.4.14,
> "inverse":
> "An inverse member does not have a corresponding column or, in case
>  of a container, table in the resulting database schema. Instead,
>  the column or table from the referenced object is used to retrieve
>  the relationship information. Only ordered and set containers can
>  be used for inverse members. If an inverse member is of an ordered
>  container type, it is automatically marked as unordered."

Thanks for the answer. What's the rationale for not enabling std::map but
enabling std::set and 'ordered' containers?


More information about the odb-users mailing list