#ifndef BOOST_SERIALIZATION_MANIFEST_HPP #define BOOST_SERIALIZATION_MANIFEST_HPP // MS compatible compilers support #pragma once #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragma once #endif /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 // manifest.hpp: Verify that all dependent libraries are at the correct // versions // (C) Copyright 2010 Robert Ramey - http://www.rrsd.com . // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include #include #include namespace boost { namespace serialization { class manifest { // verify at compile time that the serialization library is compiled // with the correct versions of it's prequisites BOOST_STATIC_ASSERT( 1 <= boost::iterator::manifest::interface_version::value // && boost::mpl::bool_ /* you other conditions here ! */ ); private: static manifest m_validator; public: // specify the current version numbers for this library typedef boost::mpl::int_<2> interface_version; typedef boost::mpl::int_<3> implemenation_version; // verifiy at run time that the serialization library is linked with // correct DLLS static int get_interface_version(); static int get_implementation_version(); // make sure constructor crashes if there's a problem with versions manifest(); }; } // serialization } // boost #endif // BOOST_SERIALIZATION_MANIFEST_HPP