1 // Copyright (C) 2006 Arkadiy Vertleyb 2 // Use, modification and distribution is subject to the Boost Software 3 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) 4 5 #include "test.hpp" 6 7 #include <boost/typeof/std/string.hpp> 8 #include <boost/typeof/std/deque.hpp> 9 #include <boost/typeof/std/list.hpp> 10 #include <boost/typeof/std/queue.hpp> 11 #include <boost/typeof/std/stack.hpp> 12 #include <boost/typeof/std/vector.hpp> 13 #include <boost/typeof/std/map.hpp> 14 #include <boost/typeof/std/set.hpp> 15 #include <boost/typeof/std/bitset.hpp> 16 #include <boost/typeof/std/functional.hpp> 17 #include <boost/typeof/std/valarray.hpp> 18 #include <boost/typeof/std/locale.hpp> 19 #include <boost/typeof/std/iostream.hpp> 20 #include <boost/typeof/std/streambuf.hpp> 21 #include <boost/typeof/std/istream.hpp> 22 #include <boost/typeof/std/ostream.hpp> 23 #include <boost/typeof/std/sstream.hpp> 24 #include <boost/typeof/std/fstream.hpp> 25 #include <boost/typeof/std/iterator.hpp> 26 27 using namespace std; 28 29 // STL containers 30 31 BOOST_STATIC_ASSERT(boost::type_of::test<string>::value); 32 BOOST_STATIC_ASSERT(boost::type_of::test<deque<int> >::value); 33 BOOST_STATIC_ASSERT(boost::type_of::test<list<int> >::value); 34 BOOST_STATIC_ASSERT(boost::type_of::test<queue<int> >::value); 35 BOOST_STATIC_ASSERT(boost::type_of::test<stack<int> >::value); 36 BOOST_STATIC_ASSERT(boost::type_of::test<vector<int> >::value); 37 BOOST_STATIC_ASSERT((boost::type_of::test<map<int, int> >::value)); 38 BOOST_STATIC_ASSERT((boost::type_of::test<multimap<int, int> >::value)); 39 BOOST_STATIC_ASSERT(boost::type_of::test<set<int> >::value); 40 BOOST_STATIC_ASSERT(boost::type_of::test<multiset<int> >::value); 41 BOOST_STATIC_ASSERT(boost::type_of::test<bitset<10> >::value); 42 43 // function objects 44 45 BOOST_STATIC_ASSERT((boost::type_of::test<unary_function<int, int> >::value)); 46 BOOST_STATIC_ASSERT((boost::type_of::test<binary_function<int, int, int> >::value)); 47 BOOST_STATIC_ASSERT(boost::type_of::test<plus<int> >::value); 48 BOOST_STATIC_ASSERT(boost::type_of::test<minus<int> >::value); 49 BOOST_STATIC_ASSERT(boost::type_of::test<multiplies<int> >::value); 50 BOOST_STATIC_ASSERT(boost::type_of::test<divides<int> >::value); 51 BOOST_STATIC_ASSERT(boost::type_of::test<modulus<int> >::value); 52 BOOST_STATIC_ASSERT(boost::type_of::test<negate<int> >::value); 53 BOOST_STATIC_ASSERT(boost::type_of::test<equal_to<int> >::value); 54 BOOST_STATIC_ASSERT(boost::type_of::test<not_equal_to<int> >::value); 55 BOOST_STATIC_ASSERT(boost::type_of::test<greater<int> >::value); 56 BOOST_STATIC_ASSERT(boost::type_of::test<less<int> >::value); 57 BOOST_STATIC_ASSERT(boost::type_of::test<greater_equal<int> >::value); 58 BOOST_STATIC_ASSERT(boost::type_of::test<less_equal<int> >::value); 59 BOOST_STATIC_ASSERT(boost::type_of::test<logical_and<int> >::value); 60 BOOST_STATIC_ASSERT(boost::type_of::test<logical_or<int> >::value); 61 BOOST_STATIC_ASSERT(boost::type_of::test<logical_not<int> >::value); 62 BOOST_STATIC_ASSERT(boost::type_of::test<unary_negate<negate<int> > >::value); 63 BOOST_STATIC_ASSERT(boost::type_of::test<binary_negate<less<int> > >::value); 64 BOOST_STATIC_ASSERT(boost::type_of::test<binder1st<less<int> > >::value); 65 BOOST_STATIC_ASSERT(boost::type_of::test<binder2nd<less<int> > >::value); 66 67 // valarray 68 69 BOOST_STATIC_ASSERT(boost::type_of::test<valarray<int> >::value); 70