http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53173
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-05-01 09:36:50 UTC --- (In reply to comment #2) > 2. error: no matching function for call to ‘std::pair<const long unsigned int, > boost::shared_ptr<const a::b::c::dConfig> >::pair(long unsigned int, const > a::b::c::Config*)’ There is no implicit conversion from Config* to shared_ptr<Config>, it was a bug in GCC that the code compiled previously. You need to create the pair with a shared_ptr<Config> as the second argument, not a Config* > 5. error: declaration of ‘~typename a::b::c::dControl<Data, PublicSecurityID, > PrivateSecurityID, ControlQueue, StatusQueue, Queue>::dControl’ as member of > ‘a::b::c::dControl<Data, PublicSecurityID, PrivateSecurityID, > FeedControlQueue, > StatusQueue, Queue>’ You're declaring a destructor with the wrong type.