diff options
Diffstat (limited to 'src/boost/libs/container/bench/detail/varray_concept.hpp')
-rw-r--r-- | src/boost/libs/container/bench/detail/varray_concept.hpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/boost/libs/container/bench/detail/varray_concept.hpp b/src/boost/libs/container/bench/detail/varray_concept.hpp new file mode 100644 index 00000000..94d19bd7 --- /dev/null +++ b/src/boost/libs/container/bench/detail/varray_concept.hpp @@ -0,0 +1,60 @@ +// Boost.Container varray +// +// Copyright (c) 2012-2013 Andrew Hundt. +// Copyright (c) 2012-2013 Adam Wulkiewicz, Lodz, Poland. +// +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_CONTAINER_VARRAY_CONCEPT_HPP +#define BOOST_CONTAINER_VARRAY_CONCEPT_HPP + +#include <boost/concept_check.hpp> + +namespace boost { namespace container { namespace dtl { namespace concept { + +/** + * VArrayStrategyConcept + * + * \brief Checks strategy for varray<Value,Capacity,Strategy>, which has similarities to std::allocator + * \ingroup varray + */ +template<typename Strategy> +struct VArrayStrategy { +#ifndef DOXYGEN_NO_CONCEPT_MEMBERS + + // typedefs are the same as in std::allocator + typedef typename Strategy::value_type value_type; + typedef typename Strategy::size_type size_type; + typedef typename Strategy::difference_type difference_type; + typedef typename Strategy::pointer pointer; + typedef typename Strategy::const_pointer const_pointer; + typedef typename Strategy::reference reference; + typedef typename Strategy::const_reference const_reference; + + struct check_methods + { + static void apply() + { + Strategy const* str = 0; + + // must implement allocate_failed + str->allocate_failed(); + + boost::ignore_unused_variable_warning(str); + } + }; + +public : + BOOST_CONCEPT_USAGE(VArrayStrategy) + { + check_methods::apply(); + } + +#endif +}; + +}}}} // namespace boost::container::dtl::concept + +#endif //BOOST_CONTAINER_VARRAY_CONCEPT_HPP |