id summary reporter owner description type status milestone component version severity resolution keywords cc 4874 multi_array compile errors using Visual C++ 2010 in debug mode chrislu Ronald Garcia "This is a long standing problem and it should have been fixes already [1], but in boost release 1.45 it still exists. When using a multi_array and engaging the copy constructor or assignment operator of a multi_array in debug mode on Visual C++ 2010 the following errors are generated. This was done using the boost 1.45 release on Visual C++ 2010 on Windows 7 x64 targeting a x64 build: {{{ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2216): error C2665: 'std::_Copy_impl' : none of the 2 overloads could convert all the argument types 1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2182): could be '_OutIt std::_Copy_impl<_InIt,_OutIt>(_InIt,_InIt,_OutIt,std::input_iterator_tag,std::output_iterator_tag)' 1> with 1> [ 1> _OutIt=boost::detail::multi_array::array_iterator,boost::detail::multi_array::sub_array>, 1> _InIt=boost::detail::multi_array::array_iterator,boost::detail::multi_array::const_sub_array> 1> ] 1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2191): or '_OutIt std::_Copy_impl<_InIt,_OutIt>(_InIt,_InIt,_OutIt,std::random_access_iterator_tag,std::random_access_iterator_tag)' 1> with 1> [ 1> _OutIt=boost::detail::multi_array::array_iterator,boost::detail::multi_array::sub_array>, 1> _InIt=boost::detail::multi_array::array_iterator,boost::detail::multi_array::const_sub_array> 1> ] 1> while trying to match the argument list '(boost::detail::multi_array::array_iterator, boost::detail::multi_array::array_iterator, boost::detail::multi_array::array_iterator, boost::detail::iterator_category_with_traversal, boost::detail::iterator_category_with_traversal)' 1> with 1> [ 1> T=char, 1> TPtr=const char *, 1> NumDims=boost::mpl::size_t<0x02>, 1> Reference=boost::detail::multi_array::const_sub_array 1> ] 1> and 1> [ 1> T=char, 1> TPtr=const char *, 1> NumDims=boost::mpl::size_t<0x02>, 1> Reference=boost::detail::multi_array::const_sub_array 1> ] 1> and 1> [ 1> T=char, 1> TPtr=char *, 1> NumDims=boost::mpl::size_t<0x02>, 1> Reference=boost::detail::multi_array::sub_array 1> ] 1> and 1> [ 1> Category=std::input_iterator_tag, 1> Traversal=boost::random_access_traversal_tag 1> ] 1> and 1> [ 1> Category=std::input_iterator_tag, 1> Traversal=boost::random_access_traversal_tag 1> ] 1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2227) : see reference to function template instantiation '_OutIt std::_Copy_impl<_Iter,_OutIt>(_InIt,_InIt,_OutIt,std::tr1::false_type)' being compiled 1> with 1> [ 1> _OutIt=boost::detail::multi_array::array_iterator,boost::detail::multi_array::sub_array>, 1> _Iter=boost::detail::multi_array::array_iterator,boost::detail::multi_array::const_sub_array>, 1> _InIt=boost::detail::multi_array::array_iterator,boost::detail::multi_array::const_sub_array> 1> ] 1> E:\working_copies\schism_x64\externals_vc100\inc\boost\boost/multi_array/multi_array_ref.hpp(489) : see reference to function template instantiation '_OutIt std::copy,boost::detail::multi_array::array_iterator>>(_InIt,_InIt,_OutIt)' being compiled 1> with 1> [ 1> _OutIt=boost::detail::multi_array::array_iterator,boost::detail::multi_array::sub_array>, 1> T=char, 1> TPtr=const char *, 1> NumDims=boost::mpl::size_t<0x02>, 1> Reference=boost::detail::multi_array::const_sub_array, 1> _InIt=boost::detail::multi_array::array_iterator,boost::detail::multi_array::const_sub_array> 1> ] 1> E:\working_copies\schism_x64\externals_vc100\inc\boost\boost/multi_array.hpp(377) : see reference to function template instantiation 'boost::multi_array_ref &boost::multi_array_ref::operator =>(const ConstMultiArray &)' being compiled 1> with 1> [ 1> T=char, 1> NumDims=0x02, 1> ConstMultiArray=boost::multi_array 1> ] 1> E:\working_copies\schism_x64\externals_vc100\inc\boost\boost/multi_array.hpp(375) : while compiling class template member function 'boost::multi_array &boost::multi_array::operator =(const boost::multi_array &)' 1> with 1> [ 1> T=char, 1> NumDims=0x02 1> ] 1> e:\working_copies\schism_x64\schism\scm_gl_util\src\scm\gl_util\font\font_face.h(60) : see reference to class template instantiation 'boost::multi_array' being compiled 1> with 1> [ 1> T=char, 1> NumDims=0x02 1> ] }}} [1] https://svn.boost.org/trac/boost/ticket/4539" Bugs reopened To Be Determined multi_array Boost 1.58.0 Showstopper multi_array, Visual Studio 2010, Visual C++ 2010 Visual C++ 2013 Bill Buklis nilsgladitz@…