// (C) Copyright Jeremy Siek 2001. 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 // This file checks the property map concepts against the property map // archetypes to make sure they are consistent and that they compile. // This also checks all the property map classes defined in // property_map.hpp against the concept checking classes. int main() { using namespace boost; { typedef null_archetype<> Key; typedef assignable_archetype > Value; typedef readable_property_map_archetype PMap; function_requires >(); } { typedef null_archetype<> Key; typedef assignable_archetype > Value; typedef writable_property_map_archetype PMap; function_requires >(); } { typedef null_archetype<> Key; typedef assignable_archetype > Value; typedef read_write_property_map_archetype PMap; function_requires >(); } { typedef null_archetype<> Key; typedef assignable_archetype > Value; typedef lvalue_property_map_archetype PMap; function_requires >(); } { typedef null_archetype<> Key; typedef assignable_archetype > Value; typedef mutable_lvalue_property_map_archetype PMap; function_requires >(); } { typedef std::ptrdiff_t Key; typedef int* PMap; function_requires >(); } { typedef std::ptrdiff_t Key; typedef const int* PMap; function_requires >(); } { typedef sgi_assignable_archetype<> Key; // ? typedef sgi_assignable_archetype<> Value; typedef random_access_iterator_archetype Iterator; typedef readable_property_map_archetype IndexMap; typedef iterator_property_map PMap; function_requires >(); } { typedef sgi_assignable_archetype<> Key; typedef sgi_assignable_archetype<> Value; typedef mutable_random_access_iterator_archetype Iterator; typedef readable_property_map_archetype IndexMap; typedef iterator_property_map PMap; function_requires >(); } { typedef sgi_assignable_archetype< less_than_comparable_archetype<> > Key; typedef default_constructible_archetype< sgi_assignable_archetype<> > Value; typedef std::map Container; typedef associative_property_map PMap; function_requires >(); } { typedef sgi_assignable_archetype< less_than_comparable_archetype<> > Key; typedef default_constructible_archetype< sgi_assignable_archetype<> > Value; typedef std::map Container; typedef const_associative_property_map PMap; function_requires >(); } { typedef identity_property_map PMap; function_requires >(); } { typedef dummy_property_map PMap; function_requires >(); } return 0; }