Boost C++ Libraries: Ticket #1966: Need VC8 workaround https://svn.boost.org/trac10/ticket/1966 <pre class="wiki">template &lt;class A0, class A1 = boost::parameter::void_&gt; struct sparse : sparse_impl&lt; typename sparse_signature::bind&lt;A0,A1&gt;::type &gt; { typedef sparse_impl&lt; typename sparse_signature::bind&lt;A0,A1&gt;::type &gt; base; BOOST_PARAMETER_CONSTRUCTOR( sparse, (base), tag, (required (nrows, (std::size_t)) ) (optional (nstored, (std::size_t)) ) ) // workarounds for VC8 bugs sparse(sparse const&amp; rhs) : sparse_impl((sparse_impl const&amp;)rhs) {} sparse&amp; operator=(sparse const&amp; rhs) { *(sparse_impl*)this = (sparse_impl const&amp;)rhs; return *this; } }; </pre><p> The problem is that the automatically-generated copy ctor and assignment essentially leave out the casts above, and get routed to the templated ctor in the base class. The question is, should we incorporate these fixes in BOOST_PARAMETER_CONSTRUCTOR? </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/1966 Trac 1.4.3 Steven Watanabe Sat, 30 May 2009 00:14:49 GMT component changed https://svn.boost.org/trac10/ticket/1966#comment:1 https://svn.boost.org/trac10/ticket/1966#comment:1 <ul> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">parameter</span> </li> </ul> Ticket