
On 01/17/11 18:35, Larry Evans wrote: [snip]
However, I'm still getting a compile error with gcc4.5.1. A partial list of the compilation output is also attached.
Any ideas what's going wrong?
[snip] Apparently gcc4.5.1 is more stringent about converting value types to reference types. Changing: template < typename VisitorType , typename IndexType > inline typename VisitorType::result_type apply_visitor_impl ( VisitorType& rVisitor , boost::mpl::true_ /*is_unrolled_t*/ ) const { typedef typename boost::mpl::at<Typelist, IndexType>::type type_t; return rVisitor ( boost::static_pointer_cast<typename type_t::value_type> ( m_spSelect ) ); } to: template < typename VisitorType , typename IndexType > inline typename VisitorType::result_type apply_visitor_impl ( VisitorType& rVisitor , boost::mpl::true_ /*is_unrolled_t*/ ) const { typedef typename boost::mpl::at<Typelist, IndexType>::type::value_type value_t; boost::shared_ptr<value_t> spc(boost::static_pointer_cast<value_t>(m_spSelect)); return rVisitor(spc); } at around line 163 of CLoPtrVariant.hpp solved problem.