[Boost-bugs] [Boost C++ Libraries] #4539: multi_array patch for VisualStudio 2010

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