#pragma once #include #include #include #pragma db namespace pointer(std::shared_ptr) \ table("ns1_") namespace ns1 { #pragma db object polymorphic class entity { public: entity() : m_id(0) {} virtual ~entity() {} unsigned long long id() const { return m_id; } private: friend class odb::access; #pragma db id auto unsigned long long m_id; }; #pragma db object class item : public entity { public: item(const std::string& name) : m_name(name) {} ~item() {} const std::string& name() const { return m_name; } void name(const std::string& name) { m_name = name; } private: friend class odb::access; item() {} private: std::string m_name; }; }