ODB is an open-source, cross-platform and cross-database object-relational mapping (ORM) system for C++. Unlike other libraries offering a similar functionality, ODB automatically generates the code that performs the conversion between persistent classes and their database representation from C++ class declarations. ODB is also highly customizable. Components such as basic types, smart pointers, and containers from popular frameworks and libraries such as Boost and Qt can be used seamlessly in persistent classes along with the standard versions. The first half of the talk introduces the basic concepts and workflow of the ODB system. The second half focuses on the ODB profile for Boost, a library that provides support for persisting Boost value types (e.g., boost::gregorian::date), smart pointers (e.g., boost::shared_ptr), and containers (e.g., boost::optional, boost::unordered_set).