summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/container/bench/detail/varray_concept.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/container/bench/detail/varray_concept.hpp')
-rw-r--r--src/boost/libs/container/bench/detail/varray_concept.hpp60
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