[interprocess] new problem with move-aware containers

Hi Ion, I'm using the boost::interprocess::multiset from trunk with vc9. After updating, some of my code stopped working. I use a set like multiset<const Node*,SomePredicate> and when calling set.insert( &obj ) I get compile errors. Specifically in interprocess\detail\move.hpp(79) I don't understand the details of these move-emulation tricks, but the compiler complains that T=U* for some U is not a legal base class. AFAICT, the compiler is right: template <class T> class rv : public T { rv(); ~rv(); rv(rv const&); void operator=(rv const&); }; -Thorsten

Thorsten Ottosen escribió:
Hi Ion,
I'm using the boost::interprocess::multiset from trunk with vc9. After updating, some of my code stopped working. I use a set like
multiset<const Node*,SomePredicate>
and when calling
set.insert( &obj )
I get compile errors. Specifically in
interprocess\detail\move.hpp(79)
I don't understand the details of these move-emulation tricks, but the compiler complains that T=U* for some U is not a legal base class.
utilities.hpp updated, revision 57018, try again ;-) Best, Ion
participants (2)
-
Ion Gaztañaga
-
Thorsten Ottosen