[Boost-bugs] [Boost C++ Libraries] #1966: Need VC8 workaround

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