// (C) Copyright Jeremy Siek 2000. Permission to copy, use, modify, // sell and distribute this software is granted provided this // copyright notice appears in all copies. This software is provided // "as is" without express or implied warranty, and with no claim as // to its suitability for any purpose. #include #include #include #include #include #include #include #ifndef BOOST_NO_SLIST #include #endif int main() { #if defined(_ITERATOR_) // VC++ STL implementation is not standard conformant and // fails to pass these concept checks #else typedef std::vector Vector; typedef std::deque Deque; typedef std::list List; // VC++ missing pointer and const_pointer typedefs REQUIRE(Vector, Mutable_RandomAccessContainer); REQUIRE(Vector, BackInsertionSequence); #if !defined(__GNUC__) #if !defined __sgi // old deque iterator missing n + iter operation REQUIRE(Deque, Mutable_RandomAccessContainer); #endif // warnings about signed and unsigned in old deque version REQUIRE(Deque, FrontInsertionSequence); REQUIRE(Deque, BackInsertionSequence); #endif // VC++ missing pointer and const_pointer typedefs REQUIRE(List, Mutable_ReversibleContainer); REQUIRE(List, FrontInsertionSequence); REQUIRE(List, BackInsertionSequence); #ifndef BOOST_NO_SLIST typedef std::slist SList; REQUIRE(SList, FrontInsertionSequence); #endif typedef std::set Set; typedef std::multiset MultiSet; typedef std::map Map; typedef std::multimap MultiMap; REQUIRE(Set, SortedAssociativeContainer); REQUIRE(Set, SimpleAssociativeContainer); REQUIRE(Set, UniqueAssociativeContainer); REQUIRE(MultiSet, SortedAssociativeContainer); REQUIRE(MultiSet, SimpleAssociativeContainer); REQUIRE(MultiSet, MultipleAssociativeContainer); REQUIRE(Map, SortedAssociativeContainer); REQUIRE(Map, UniqueAssociativeContainer); REQUIRE(Map, PairAssociativeContainer); REQUIRE(MultiMap, SortedAssociativeContainer); REQUIRE(MultiMap, MultipleAssociativeContainer); REQUIRE(MultiMap, PairAssociativeContainer); #endif return 0; }