Subject: [Boost-bugs] [Boost C++ Libraries] #1966: Need VC8 workaround
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-05-28 16:29:06
#1966: Need VC8 workaround
--------------------------+-------------------------------------------------
Reporter: dave | Owner: danielw
Type: Bugs | Status: new
Milestone: Boost 1.36.0 | Component: None
Version: Boost 1.35.0 | Severity: Problem
Keywords: |
--------------------------+-------------------------------------------------
{{{
template <class A0, class A1 = boost::parameter::void_>
struct sparse
: sparse_impl<
typename sparse_signature::bind<A0,A1>::type
>
{
typedef sparse_impl< typename sparse_signature::bind<A0,A1>::type >
base;
BOOST_PARAMETER_CONSTRUCTOR(
sparse, (base), tag,
(required
(nrows, (std::size_t))
)
(optional
(nstored, (std::size_t))
)
)
// workarounds for VC8 bugs
sparse(sparse const& rhs)
: sparse_impl((sparse_impl const&)rhs)
{}
sparse& operator=(sparse const& rhs)
{
*(sparse_impl*)this = (sparse_impl const&)rhs;
return *this;
}
};
}}}
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?
--
Ticket URL: <http://svn.boost.org/trac/boost/ticket/1966>
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:49:57 UTC