// file : odb/header.cxx // copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC // license : GNU GPL v3; see accompanying LICENSE file #include #include #include using namespace std; namespace header { void generate () { context ctx; ostream& os (ctx.os); os << "#include " << endl << "#include " << endl // std::size_t << endl; os << "#include " << endl << "#include " << endl << "#include " << endl << "#include " << endl << "#include " << endl; // In case of a boost TR1 implementation, we cannot distinguish // between the boost::shared_ptr and std::tr1::shared_ptr usage since // the latter is just a using-declaration for the former. To resolve // this we will include TR1 traits if the Boost TR1 header is included. // if (ctx.features.tr1_pointer) { os << "#include " << endl << "#include " << endl; } else if (ctx.features.boost_pointer) { os << "#ifdef BOOST_TR1_MEMORY_HPP_INCLUDED" << endl << "# include " << endl << "# include " << endl << "#endif" << endl; } os << "#include " << endl; if (ctx.features.session_object) os << "#include " << endl; else os << "#include " << endl; if (ctx.features.polymorphic_object) os << "#include " << endl; if (ctx.options.generate_query ()) { os << "#include " << endl; if (ctx.features.simple_object) os << "#include " << endl; if (ctx.features.polymorphic_object) os << "#include " << endl; if (ctx.features.no_id_object) os << "#include " << endl; if (ctx.features.view) os << "#include " << endl; } os << endl; } }