// file : odb/boost/optional/wrapper-traits.hxx // author : Boris Kolpackov // copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_BOOST_OPTIONAL_WRAPPER_TRAITS_HXX #define ODB_BOOST_OPTIONAL_WRAPPER_TRAITS_HXX #include #include #include #include namespace odb { template class wrapper_traits< ::boost::optional > { public: typedef T wrapped_type; typedef ::boost::optional wrapper_type; static const bool null_handler = true; static const bool null_default = true; static bool get_null (const wrapper_type& o) { return !o; } static void set_null (wrapper_type& o) { o = ::boost::none; } static const wrapped_type& get_ref (const wrapper_type& o) { return *o; } static wrapped_type& set_ref (wrapper_type& o) { if (!o) o = T (); return *o; } }; } #include #endif // ODB_BOOST_OPTIONAL_WRAPPER_TRAITS_HXX