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