[odb-users] Embed operator==(const DBO& other) yields compilation error when using odb::lazy_shared_ptr

Boris Kolpackov boris at codesynthesis.com
Wed Sep 20 18:38:03 EDT 2017


Vassilios Kountouriotis <b.kountouriotis at gmail.com> writes:
 
> /usr/libexec/odb/x86_64-linux-gnu/include/odb/lazy-ptr.ixx:1153:
> error: no match for ‘operator=’ (operand types are
> ‘std::shared_ptr<DB_GameType>’ and
> ‘odb::object_traits<DB_GameType>::pointer_type {aka DB_GameType*}’)
>        p_ = i_.template load<T> (true); // Reset id.
>           ^
> 
> It seems like it ignores the shared_ptr pointer type.

Try to move operator==() to the source file after including the
*-odb header for DB_GameType (load() needs to "see" the traits
type for DB_GameType that is defined in this header).

Boris



More information about the odb-users mailing list