<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Template, Error im Debug-Mode]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich hab hier einen Code, der mit GCC compiliert, und auch mit VS2010 im Release-Mode. VS2010 im Debug-Mode verweigert aber:</p>
<p>Klasse HCube:</p>
<pre><code class="language-cpp">#include &quot;FSM.h&quot;

class HCube:public FSM&lt;HCube,void&gt;
{
..bla...
}
</code></pre>
<p>Klasse FSM:</p>
<pre><code class="language-cpp">template&lt;class T_DERIVED,class T_RET&gt;
class FSM
{
	typedef T_RET(T_DERIVED::*mtdPtr)();
	typedef typename boost::multi_array&lt;mtdPtr ,2&gt; fptrArrayType;
	typedef typename boost::multi_array&lt;unsigned,2&gt; nextStateArrayType;

protected:
	FSM(unsigned dimX_,unsigned dimY_);
	void setEntry(unsigned state, unsigned event,mtdPtr,unsigned nextState);
	void runFSM(unsigned initState,unsigned initEvent);
	void init(unsigned initState);
	unsigned getState() const;
	virtual T_RET inv()=0;
	virtual ~FSM();
	virtual string userFriendlyState(unsigned st) const=0;
	virtual string userFriendlyEvent(unsigned ev) const=0;

	unsigned dimX,dimY;
	unsigned currentState;

	fptrArrayType fpntTab; // DAS IST ZEILE 17, HIER IST ETWAS FAUL
	nextStateArrayType nextStateTab;
};
</code></pre>
<p>Hier ist die lange Fehlermeldung, die seit dem Upgrade auf Boost 1.49.0 (und nur Im Debug-Mode) auftritt:</p>
<pre><code>1&gt;  HCube.cpp
1&gt;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&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2182): could be '_OutIt std::_Copy_impl&lt;_InIt,_OutIt&gt;(_InIt,_InIt,_OutIt,std::input_iterator_tag,std::output_iterator_tag)'
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;unsigned int,unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2191): or       '_OutIt std::_Copy_impl&lt;_InIt,_OutIt&gt;(_InIt,_InIt,_OutIt,std::random_access_iterator_tag,std::random_access_iterator_tag)'
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;unsigned int,unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;
1&gt;          ]
1&gt;          while trying to match the argument list '(boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::iterator_category_with_traversal&lt;Category,Traversal&gt;, boost::detail::iterator_category_with_traversal&lt;Category,Traversal&gt;)'
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              TPtr=const unsigned int *,
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              TPtr=const unsigned int *,
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              TPtr=unsigned int *,
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              Category=std::input_iterator_tag,
1&gt;              Traversal=boost::random_access_traversal_tag
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              Category=std::input_iterator_tag,
1&gt;              Traversal=boost::random_access_traversal_tag
1&gt;          ]
1&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2227) : see reference to function template instantiation '_OutIt std::_Copy_impl&lt;_Iter,_OutIt&gt;(_InIt,_InIt,_OutIt,std::tr1::false_type)' being compiled
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;unsigned int,unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              _Iter=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array/view.hpp(321) : see reference to function template instantiation '_OutIt std::copy&lt;boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;,boost::detail::multi_array::array_iterator&lt;T,T *,NumDims,boost::detail::multi_array::sub_array&lt;T,0x01&gt;&gt;&gt;(_InIt,_InIt,_OutIt)' being compiled
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;unsigned int,unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              T=unsigned int,
1&gt;              TPtr=const unsigned int *,
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array/view.hpp(313) : while compiling class template member function 'boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt; &amp;boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt;::operator =(const boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt; &amp;)'
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array.hpp(406) : see reference to class template instantiation 'boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array.hpp(402) : while compiling class template member function 'boost::multi_array&lt;T,NumDims&gt; &amp;boost::multi_array&lt;T,NumDims&gt;::resize(const boost::detail::multi_array::extent_gen&lt;NumRanges&gt; &amp;)'
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              NumDims=0x02,
1&gt;              NumRanges=0x02
1&gt;          ]
1&gt;          c:\windev64\mergelib\FSM.h(38) : see reference to class template instantiation 'boost::multi_array&lt;T,NumDims&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          c:\windev64\mergelib\FSM.h(39) : see reference to class template instantiation 'FSM&lt;T_DERIVED,T_RET&gt;' being compiled
1&gt;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&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2182): could be '_OutIt std::_Copy_impl&lt;_InIt,_OutIt&gt;(_InIt,_InIt,_OutIt,std::input_iterator_tag,std::output_iterator_tag)'
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2191): or       '_OutIt std::_Copy_impl&lt;_InIt,_OutIt&gt;(_InIt,_InIt,_OutIt,std::random_access_iterator_tag,std::random_access_iterator_tag)'
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;
1&gt;          ]
1&gt;          while trying to match the argument list '(boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::iterator_category_with_traversal&lt;Category,Traversal&gt;, boost::detail::iterator_category_with_traversal&lt;Category,Traversal&gt;)'
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              TPtr=void (__cdecl HCube::* const *)(void),
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              TPtr=void (__cdecl HCube::* const *)(void),
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              TPtr=void (__cdecl HCube::* *)(void),
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              Category=std::input_iterator_tag,
1&gt;              Traversal=boost::random_access_traversal_tag
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              Category=std::input_iterator_tag,
1&gt;              Traversal=boost::random_access_traversal_tag
1&gt;          ]
1&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2227) : see reference to function template instantiation '_OutIt std::_Copy_impl&lt;_Iter,_OutIt&gt;(_InIt,_InIt,_OutIt,std::tr1::false_type)' being compiled
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              _Iter=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array/view.hpp(321) : see reference to function template instantiation '_OutIt std::copy&lt;boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;,boost::detail::multi_array::array_iterator&lt;T,T *,NumDims,boost::detail::multi_array::sub_array&lt;T,0x01&gt;&gt;&gt;(_InIt,_InIt,_OutIt)' being compiled
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              TPtr=void (__cdecl HCube::* const *)(void),
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array/view.hpp(313) : while compiling class template member function 'boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt; &amp;boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt;::operator =(const boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt; &amp;)'
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array.hpp(406) : see reference to class template instantiation 'boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array.hpp(402) : while compiling class template member function 'boost::multi_array&lt;T,NumDims&gt; &amp;boost::multi_array&lt;T,NumDims&gt;::resize(const boost::detail::multi_array::extent_gen&lt;NumRanges&gt; &amp;)'
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              NumDims=0x02,
1&gt;              NumRanges=0x02
1&gt;          ]
1&gt;          c:\windev64\mergelib\FSM.h(37) : see reference to class template instantiation 'boost::multi_array&lt;T,NumDims&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          c:\windev64\mergelib\HCube.h(17) : see reference to class template instantiation 'FSM&lt;T_DERIVED,T_RET&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T_DERIVED=HCube,
1&gt;              T_RET=void
1&gt;          ]
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
</code></pre>
<p>Ich werde aus der Meldung nicht schlau. Irgendwelche Tipps, was es da im Debug-Mode hat?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301135/template-error-im-debug-mode</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 07:38:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301135.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Mar 2012 11:55:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template, Error im Debug-Mode on Tue, 20 Mar 2012 11:55:52 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich hab hier einen Code, der mit GCC compiliert, und auch mit VS2010 im Release-Mode. VS2010 im Debug-Mode verweigert aber:</p>
<p>Klasse HCube:</p>
<pre><code class="language-cpp">#include &quot;FSM.h&quot;

class HCube:public FSM&lt;HCube,void&gt;
{
..bla...
}
</code></pre>
<p>Klasse FSM:</p>
<pre><code class="language-cpp">template&lt;class T_DERIVED,class T_RET&gt;
class FSM
{
	typedef T_RET(T_DERIVED::*mtdPtr)();
	typedef typename boost::multi_array&lt;mtdPtr ,2&gt; fptrArrayType;
	typedef typename boost::multi_array&lt;unsigned,2&gt; nextStateArrayType;

protected:
	FSM(unsigned dimX_,unsigned dimY_);
	void setEntry(unsigned state, unsigned event,mtdPtr,unsigned nextState);
	void runFSM(unsigned initState,unsigned initEvent);
	void init(unsigned initState);
	unsigned getState() const;
	virtual T_RET inv()=0;
	virtual ~FSM();
	virtual string userFriendlyState(unsigned st) const=0;
	virtual string userFriendlyEvent(unsigned ev) const=0;

	unsigned dimX,dimY;
	unsigned currentState;

	fptrArrayType fpntTab; // DAS IST ZEILE 17, HIER IST ETWAS FAUL
	nextStateArrayType nextStateTab;
};
</code></pre>
<p>Hier ist die lange Fehlermeldung, die seit dem Upgrade auf Boost 1.49.0 (und nur Im Debug-Mode) auftritt:</p>
<pre><code>1&gt;  HCube.cpp
1&gt;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&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2182): could be '_OutIt std::_Copy_impl&lt;_InIt,_OutIt&gt;(_InIt,_InIt,_OutIt,std::input_iterator_tag,std::output_iterator_tag)'
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;unsigned int,unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2191): or       '_OutIt std::_Copy_impl&lt;_InIt,_OutIt&gt;(_InIt,_InIt,_OutIt,std::random_access_iterator_tag,std::random_access_iterator_tag)'
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;unsigned int,unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;
1&gt;          ]
1&gt;          while trying to match the argument list '(boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::iterator_category_with_traversal&lt;Category,Traversal&gt;, boost::detail::iterator_category_with_traversal&lt;Category,Traversal&gt;)'
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              TPtr=const unsigned int *,
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              TPtr=const unsigned int *,
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              TPtr=unsigned int *,
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              Category=std::input_iterator_tag,
1&gt;              Traversal=boost::random_access_traversal_tag
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              Category=std::input_iterator_tag,
1&gt;              Traversal=boost::random_access_traversal_tag
1&gt;          ]
1&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2227) : see reference to function template instantiation '_OutIt std::_Copy_impl&lt;_Iter,_OutIt&gt;(_InIt,_InIt,_OutIt,std::tr1::false_type)' being compiled
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;unsigned int,unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              _Iter=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array/view.hpp(321) : see reference to function template instantiation '_OutIt std::copy&lt;boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;,boost::detail::multi_array::array_iterator&lt;T,T *,NumDims,boost::detail::multi_array::sub_array&lt;T,0x01&gt;&gt;&gt;(_InIt,_InIt,_OutIt)' being compiled
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;unsigned int,unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;unsigned int,0x01&gt;&gt;,
1&gt;              T=unsigned int,
1&gt;              TPtr=const unsigned int *,
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;unsigned int,const unsigned int *,boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;unsigned int,0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array/view.hpp(313) : while compiling class template member function 'boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt; &amp;boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt;::operator =(const boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt; &amp;)'
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array.hpp(406) : see reference to class template instantiation 'boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array.hpp(402) : while compiling class template member function 'boost::multi_array&lt;T,NumDims&gt; &amp;boost::multi_array&lt;T,NumDims&gt;::resize(const boost::detail::multi_array::extent_gen&lt;NumRanges&gt; &amp;)'
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              NumDims=0x02,
1&gt;              NumRanges=0x02
1&gt;          ]
1&gt;          c:\windev64\mergelib\FSM.h(38) : see reference to class template instantiation 'boost::multi_array&lt;T,NumDims&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T=unsigned int,
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          c:\windev64\mergelib\FSM.h(39) : see reference to class template instantiation 'FSM&lt;T_DERIVED,T_RET&gt;' being compiled
1&gt;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&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2182): could be '_OutIt std::_Copy_impl&lt;_InIt,_OutIt&gt;(_InIt,_InIt,_OutIt,std::input_iterator_tag,std::output_iterator_tag)'
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2191): or       '_OutIt std::_Copy_impl&lt;_InIt,_OutIt&gt;(_InIt,_InIt,_OutIt,std::random_access_iterator_tag,std::random_access_iterator_tag)'
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;
1&gt;          ]
1&gt;          while trying to match the argument list '(boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;, boost::detail::iterator_category_with_traversal&lt;Category,Traversal&gt;, boost::detail::iterator_category_with_traversal&lt;Category,Traversal&gt;)'
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              TPtr=void (__cdecl HCube::* const *)(void),
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              TPtr=void (__cdecl HCube::* const *)(void),
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              TPtr=void (__cdecl HCube::* *)(void),
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              Category=std::input_iterator_tag,
1&gt;              Traversal=boost::random_access_traversal_tag
1&gt;          ]
1&gt;          and
1&gt;          [
1&gt;              Category=std::input_iterator_tag,
1&gt;              Traversal=boost::random_access_traversal_tag
1&gt;          ]
1&gt;          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2227) : see reference to function template instantiation '_OutIt std::_Copy_impl&lt;_Iter,_OutIt&gt;(_InIt,_InIt,_OutIt,std::tr1::false_type)' being compiled
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              _Iter=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array/view.hpp(321) : see reference to function template instantiation '_OutIt std::copy&lt;boost::detail::multi_array::array_iterator&lt;T,TPtr,NumDims,Reference&gt;,boost::detail::multi_array::array_iterator&lt;T,T *,NumDims,boost::detail::multi_array::sub_array&lt;T,0x01&gt;&gt;&gt;(_InIt,_InIt,_OutIt)' being compiled
1&gt;          with
1&gt;          [
1&gt;              _OutIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;,
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              TPtr=void (__cdecl HCube::* const *)(void),
1&gt;              NumDims=boost::mpl::size_t&lt;0x02&gt;,
1&gt;              Reference=boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;,
1&gt;              _InIt=boost::detail::multi_array::array_iterator&lt;void (__cdecl HCube::* )(void),void (__cdecl HCube::* const *)(void),boost::mpl::size_t&lt;0x02&gt;,boost::detail::multi_array::const_sub_array&lt;void (__cdecl HCube::* )(void),0x01&gt;&gt;
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array/view.hpp(313) : while compiling class template member function 'boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt; &amp;boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt;::operator =(const boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt; &amp;)'
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array.hpp(406) : see reference to class template instantiation 'boost::detail::multi_array::multi_array_view&lt;T,NumDims&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          C:\windev64\otherLib\boost_1_49_0\boost/multi_array.hpp(402) : while compiling class template member function 'boost::multi_array&lt;T,NumDims&gt; &amp;boost::multi_array&lt;T,NumDims&gt;::resize(const boost::detail::multi_array::extent_gen&lt;NumRanges&gt; &amp;)'
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              NumDims=0x02,
1&gt;              NumRanges=0x02
1&gt;          ]
1&gt;          c:\windev64\mergelib\FSM.h(37) : see reference to class template instantiation 'boost::multi_array&lt;T,NumDims&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T=void (__cdecl HCube::* )(void),
1&gt;              NumDims=0x02
1&gt;          ]
1&gt;          c:\windev64\mergelib\HCube.h(17) : see reference to class template instantiation 'FSM&lt;T_DERIVED,T_RET&gt;' being compiled
1&gt;          with
1&gt;          [
1&gt;              T_DERIVED=HCube,
1&gt;              T_RET=void
1&gt;          ]
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
</code></pre>
<p>Ich werde aus der Meldung nicht schlau. Irgendwelche Tipps, was es da im Debug-Mode hat?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193181</guid><dc:creator><![CDATA[vsbug]]></dc:creator><pubDate>Tue, 20 Mar 2012 11:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to Template, Error im Debug-Mode on Tue, 20 Mar 2012 13:08:12 GMT]]></title><description><![CDATA[<p>Hmm...<br />
Mit std::_Copy_impl scheint irgendwas nicht zu stimmen, aber da ich mich mi VC++ nicht auskenne..<br />
Aber wieso meinst du, dass es was mit boost zu tun hat (oder meinst du das überhaupt)? Der Fehler tritt doch nicht in einem der Boost-Header auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193218</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 20 Mar 2012 13:08:12 GMT</pubDate></item><item><title><![CDATA[Reply to Template, Error im Debug-Mode on Tue, 20 Mar 2012 13:58:43 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Hmm...<br />
Mit std::_Copy_impl scheint irgendwas nicht zu stimmen, aber da ich mich mi VC++ nicht auskenne..<br />
Aber wieso meinst du, dass es was mit boost zu tun hat (oder meinst du das überhaupt)? Der Fehler tritt doch nicht in einem der Boost-Header auf.</p>
</blockquote>
<p>Nicht zwangsläufig, aber in dieser Zeile, wo der Fehler seinen Anfang<br />
nimmt, wird ein boost::multi_array verwendet:</p>
<pre><code>FSM.h(37) : see reference to class template instantiation 'boost::multi_array&lt;T,NumDims&gt;' being compiled
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2193231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193231</guid><dc:creator><![CDATA[vsbug]]></dc:creator><pubDate>Tue, 20 Mar 2012 13:58:43 GMT</pubDate></item><item><title><![CDATA[Reply to Template, Error im Debug-Mode on Wed, 21 Mar 2012 08:33:12 GMT]]></title><description><![CDATA[<p>..sonst wer eine Idee, was es da hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193459</guid><dc:creator><![CDATA[vsbug]]></dc:creator><pubDate>Wed, 21 Mar 2012 08:33:12 GMT</pubDate></item><item><title><![CDATA[Reply to Template, Error im Debug-Mode on Wed, 21 Mar 2012 09:50:57 GMT]]></title><description><![CDATA[<p>Der Fehler ist, dass boost::multi_array auf dem VC++ nicht funktioniert. Eigentlich funktioniert es nirgends. Bin gerade zu faul den Link rauszusuchen.</p>
<p>Aber mal in Kurzform:</p>
<p>std::copy erwartet im dritten Argument einen output_iterator. die iteratoren von multi_array können aber nur das input_iterator konzept modellieren, auch wenn sie konkret alles können, was std::copy braucht. Die meisten Compiler testen das Konzept an der Stelle nicht, nur der VC im Debug Modus. Nun verwendet boost::multi_array std::copy intern und dadurch entstehen die Compilefehler.</p>
<p>Ich glaube der Tenor auf der Boost mailingliste war: Das ist blöd. Sie könnten beim iterator_tag lügen, wollen sie aber nicht. Also müssten sie es umschreiben. Was daraus wurde, weiß ich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193489</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 21 Mar 2012 09:50:57 GMT</pubDate></item><item><title><![CDATA[Reply to Template, Error im Debug-Mode on Wed, 21 Mar 2012 10:31:50 GMT]]></title><description><![CDATA[<p><a href="https://svn.boost.org/trac/boost/ticket/4874" rel="nofollow">https://svn.boost.org/trac/boost/ticket/4874</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193518</guid><dc:creator><![CDATA[no one]]></dc:creator><pubDate>Wed, 21 Mar 2012 10:31:50 GMT</pubDate></item><item><title><![CDATA[Reply to Template, Error im Debug-Mode on Wed, 21 Mar 2012 23:11:50 GMT]]></title><description><![CDATA[<p>Danke otze und no one, die Informationen sind sehr hilfreich, denn jetzt brauche ich in meinem Code nicht mehr suchen. Ich werfe das Multi-Array raus.</p>
<p>Beste Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193918</guid><dc:creator><![CDATA[vsbug]]></dc:creator><pubDate>Wed, 21 Mar 2012 23:11:50 GMT</pubDate></item><item><title><![CDATA[Reply to Template, Error im Debug-Mode on Wed, 21 Mar 2012 23:17:13 GMT]]></title><description><![CDATA[<p>Es gab im Trac noch einen Workaround:</p>
<pre><code class="language-cpp">#define _ITERATOR_DEBUG_LEVEL 1
</code></pre>
<p>vor dem include. musst testen was passt, ich hab sowohl 1 als auch 0 gesehen. Es stellt sich momentan wohl übrigens so dar, dass Boost korrekt ist und der VC etwas implementiert, was so nicht im Standard steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193920</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 21 Mar 2012 23:17:13 GMT</pubDate></item></channel></rss>