williamr@2: // Copyright 2002 The Trustees of Indiana University. williamr@2: williamr@2: // Use, modification and distribution is subject to the Boost Software williamr@2: // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at williamr@2: // http://www.boost.org/LICENSE_1_0.txt) williamr@2: williamr@2: // Boost.MultiArray Library williamr@2: // Authors: Ronald Garcia williamr@2: // Jeremy Siek williamr@2: // Andrew Lumsdaine williamr@2: // See http://www.boost.org/libs/multi_array for documentation. williamr@2: williamr@2: #ifndef COLLECTION_CONCEPT_RG103101_HPP williamr@2: #define COLLECTION_CONCEPT_RG103101_HPP williamr@2: williamr@2: #include "boost/concept_check.hpp" williamr@2: williamr@2: namespace boost { williamr@2: namespace detail { williamr@2: namespace multi_array { williamr@2: williamr@2: //=========================================================================== williamr@2: // Collection Concept williamr@2: williamr@2: template williamr@2: struct CollectionConcept williamr@2: { williamr@2: typedef typename Collection::value_type value_type; williamr@2: typedef typename Collection::iterator iterator; williamr@2: typedef typename Collection::const_iterator const_iterator; williamr@2: typedef typename Collection::reference reference; williamr@2: typedef typename Collection::const_reference const_reference; williamr@2: // typedef typename Collection::pointer pointer; williamr@2: typedef typename Collection::difference_type difference_type; williamr@2: typedef typename Collection::size_type size_type; williamr@2: williamr@2: void constraints() { williamr@2: boost::function_requires >(); williamr@2: boost::function_requires >(); williamr@2: boost::function_requires >(); williamr@2: const_constraints(c); williamr@2: i = c.begin(); williamr@2: i = c.end(); williamr@2: c.swap(c); williamr@2: } williamr@2: void const_constraints(const Collection& c) { williamr@2: ci = c.begin(); williamr@2: ci = c.end(); williamr@2: n = c.size(); williamr@2: b = c.empty(); williamr@2: } williamr@2: Collection c; williamr@2: bool b; williamr@2: iterator i; williamr@2: const_iterator ci; williamr@2: size_type n; williamr@2: }; williamr@2: williamr@2: } williamr@2: } williamr@2: } williamr@2: #endif // COLLECTION_CONCEPT_RG103101_HPP