// file : odb/header.cxx // copyright : Copyright (c) 2009-2011 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.unit.count ("tr1-pointer-used") && ctx.unit.get ("tr1-pointer-used")) { os << "#include " << endl << "#include " << endl; } else if (ctx.unit.count ("boost-pointer-used") && ctx.unit.get ("boost-pointer-used")) { os << "#ifdef BOOST_TR1_MEMORY_HPP_INCLUDED" << endl << "# include " << endl << "# include " << endl << "#endif" << endl; } os << "#include " << endl; if (ctx.options.generate_query ()) os << "#include " << endl; os << endl; } }