blob: c401cf77c116352f734c0c184d91b6fa025aeee1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
Index: branches/release/boost/multi_array/base.hpp
===================================================================
--- a/branches/release/boost/multi_array/base.hpp
+++ b/branches/release/boost/multi_array/base.hpp
@@ -18,6 +18,7 @@
// functionality is acquired
//
+#include "boost/multi_array/collection_concept.hpp"
#include "boost/multi_array/extent_range.hpp"
#include "boost/multi_array/extent_gen.hpp"
#include "boost/multi_array/index_range.hpp"
@@ -252,5 +253,17 @@
/////////////////////////////////////////////////////////////////////////
-
+// Due to some imprecision in the C++ Standard,
+// MSVC 2010 is broken in debug mode: it requires
+// that an Output Iterator have output_iterator_tag in its iterator_category if
+// that iterator is not bidirectional_iterator or random_access_iterator.
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1600)
+struct mutable_iterator_tag
+ : boost::random_access_traversal_tag, std::input_iterator_tag
+{
+ operator std::output_iterator_tag() const {
+ return std::output_iterator_tag();
+ }
+};
+#endif
////////////////////////////////////////////////////////////////////////
@@ -322,5 +343,6 @@
const index* strides,
const index* index_bases) const {
-
+ boost::function_requires<
+ detail::multi_array::CollectionConcept<IndexList> >();
ignore_unused_variable_warning(index_bases);
ignore_unused_variable_warning(extents);
Index: branches/release/boost/multi_array/concept_checks.hpp
===================================================================
--- a/branches/release/boost/multi_array/concept_checks.hpp
+++ b/branches/release/boost/multi_array/concept_checks.hpp
@@ -132,4 +132,5 @@
function_requires< boost_concepts::ForwardTraversalConcept<const_iterator> >();
function_requires< boost_concepts::ReadableIteratorConcept<const_iterator> >();
+ function_requires< boost::OutputIterator<iterator,value_type> >();
// RG - a( CollectionArchetype) when available...
|