[Boost-bugs] [Boost C++ Libraries] #4874: multi_array compile errors using Visual C++ 2010 in debug mode

Subject: [Boost-bugs] [Boost C++ Libraries] #4874: multi_array compile errors using Visual C++ 2010 in debug mode
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-11-21 14:06:41


#4874: multi_array compile errors using Visual C++ 2010 in debug mode
--------------------------------------------------------------+-------------
 Reporter: chrislu | Owner: garcia
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: multi_array
  Version: Boost 1.45.0 | Severity: Showstopper
 Keywords: multi_array, Visual Studio 2010, Visual C++ 2010 |
--------------------------------------------------------------+-------------
 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<char,char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::sub_array<char,0x01>>,
 1>
 _InIt=boost::detail::multi_array::array_iterator<char,const char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::const_sub_array<char,0x01>>
 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<char,char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::sub_array<char,0x01>>,
 1>
 _InIt=boost::detail::multi_array::array_iterator<char,const char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::const_sub_array<char,0x01>>
 1> ]
 1> while trying to match the argument list
 '(boost::detail::multi_array::array_iterator<T,TPtr,NumDims,Reference>,
 boost::detail::multi_array::array_iterator<T,TPtr,NumDims,Reference>,
 boost::detail::multi_array::array_iterator<T,TPtr,NumDims,Reference>,
 boost::detail::iterator_category_with_traversal<Category,Traversal>,
 boost::detail::iterator_category_with_traversal<Category,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<char,0x01>
 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<char,0x01>
 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<char,0x01>
 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<char,char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::sub_array<char,0x01>>,
 1>
 _Iter=boost::detail::multi_array::array_iterator<char,const char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::const_sub_array<char,0x01>>,
 1>
 _InIt=boost::detail::multi_array::array_iterator<char,const char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::const_sub_array<char,0x01>>
 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<T,TPtr,NumDims,Reference>,boost::detail::multi_array::array_iterator<T,T
 *,NumDims,boost::detail::multi_array::sub_array<T,0x01>>>(_InIt,_InIt,_OutIt)'
 being compiled
 1> with
 1> [
 1>
 _OutIt=boost::detail::multi_array::array_iterator<char,char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::sub_array<char,0x01>>,
 1> T=char,
 1> TPtr=const char *,
 1> NumDims=boost::mpl::size_t<0x02>,
 1>
 Reference=boost::detail::multi_array::const_sub_array<char,0x01>,
 1>
 _InIt=boost::detail::multi_array::array_iterator<char,const char
 *,boost::mpl::size_t<0x02>,boost::detail::multi_array::const_sub_array<char,0x01>>
 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<T,NumDims>
 &boost::multi_array_ref<T,NumDims>::operator
 =<boost::multi_array<T,0x02>>(const ConstMultiArray &)' being compiled
 1> with
 1> [
 1> T=char,
 1> NumDims=0x02,
 1> ConstMultiArray=boost::multi_array<char,0x02>
 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<T,NumDims> &boost::multi_array<T,NumDims>::operator
 =(const boost::multi_array<T,NumDims> &)'
 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<T,NumDims>' being compiled
 1> with
 1> [
 1> T=char,
 1> NumDims=0x02
 1> ]
 }}}

 [1] https://svn.boost.org/trac/boost/ticket/4539

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/4874>
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