1 // 2 // typeinfo_test.cpp 3 // 4 // Copyright (c) 2009 Peter Dimov 5 // 6 // Distributed under the Boost Software License, Version 1.0. 7 // See accompanying file LICENSE_1_0.txt or copy at 8 // http://www.boost.org/LICENSE_1_0.txt 9 // 10 11 #include <boost/core/typeinfo.hpp> 12 #include <boost/core/lightweight_test.hpp> 13 #include <iostream> 14 main()15int main() 16 { 17 BOOST_TEST( BOOST_CORE_TYPEID( int ) == BOOST_CORE_TYPEID( int ) ); 18 BOOST_TEST( BOOST_CORE_TYPEID( int ) != BOOST_CORE_TYPEID( long ) ); 19 BOOST_TEST( BOOST_CORE_TYPEID( int ) != BOOST_CORE_TYPEID( void ) ); 20 21 boost::core::typeinfo const & ti = BOOST_CORE_TYPEID( int ); 22 23 boost::core::typeinfo const * pti = &BOOST_CORE_TYPEID( int ); 24 BOOST_TEST( *pti == ti ); 25 26 BOOST_TEST( ti == ti ); 27 BOOST_TEST( !( ti != ti ) ); 28 BOOST_TEST( !ti.before( ti ) ); 29 30 char const * nti = ti.name(); 31 std::cout << nti << std::endl; 32 33 boost::core::typeinfo const & tv = BOOST_CORE_TYPEID( void ); 34 35 boost::core::typeinfo const * ptv = &BOOST_CORE_TYPEID( void ); 36 BOOST_TEST( *ptv == tv ); 37 38 BOOST_TEST( tv == tv ); 39 BOOST_TEST( !( tv != tv ) ); 40 BOOST_TEST( !tv.before( tv ) ); 41 42 char const * ntv = tv.name(); 43 std::cout << ntv << std::endl; 44 45 BOOST_TEST( ti != tv ); 46 BOOST_TEST( !( ti == tv ) ); 47 48 BOOST_TEST( ti.before( tv ) != tv.before( ti ) ); 49 50 return boost::report_errors(); 51 } 52