Subject: [Boost-bugs] [Boost C++ Libraries] #4539: multi_array patch for VisualStudio 2010
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-08-13 15:33:51
#4539: multi_array patch for VisualStudio 2010
----------------------------------------------+-----------------------------
Reporter: Serg Repalov <repalov@â¦> | Owner: garcia
Type: Bugs | Status: new
Milestone: Boost 1.44.0 | Component: multi_array
Version: Boost 1.44.0 | Severity: Problem
Keywords: multi_array, 2010 |
----------------------------------------------+-----------------------------
The problem is incorrect iterator_category for multi_array::iterator.
Due to use proxy class as reference int iterator, the type of
iterator_category (selected in iterator_facade_types ->
facade_iterator_category (iterator_facade_default_category)) is
incorrectly (due to is_reference<Reference> is fail) assigned to
std::input_iterator_tag. So the std::copy from MSVC 2010 is doesn't
compile in Debug mode due to fail of additional checks.
The problem also is described here:
http://connect.microsoft.com/VisualStudio/feedback/details/488103/error-
with-boost-multi-array-version-1-40-when-compiling-with-ds-2010
And also discussed here:
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/3c9eac4f-
86e4-490b-bbde-dbd70176b0f8
The solution from last discussion is to use
std::random_access_iterator_tag instead of
boost::random_access_traversal_tag at array_iterator definition (in file
boost\multi_array\iterator.hpp is not correct for const_iterator.
I try to make more generic solution and create patch from it.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4539> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:04 UTC