
Hi all,
I'm having a problem compiling some code with boost 1.46 that was compiling
fine with 1.36 to 1.43 (or thereabouts). It appears that this is somewhat
related to the use of Boost.Move in the Boost.Interprocess library.
I have tried to read up a bit on Boost.Move, but have failed to quite
understand what of it applies to me.
Here is a small piece of code that will cause the compilation error
(explanations below):
----------------------
#include
ShmString;
class A { #if 0 public: A(const A&); A& operator=(const A&); #endif private: #if 1 ShmString m_name; #endif }; typedef boost::interprocess::vector < A, boost::interprocess::allocator < A, boost::interprocess::managed_shared_memory::segment_manager >
AVector;
class B
{
public:
void AddA(const A & a) {m_as.push_back(a);}
private:
AVector m_as;
};
----------------
g++ 4.4 compilation errors:
----------------
In file included from /usr/include/c++/4.4/memory:49,
from
/home/lars/boost_1_46_0/boost/interprocess/containers/container/vector.hpp:23,
from
/home/lars/boost_1_46_0/boost/interprocess/containers/vector.hpp:19,
from mfp.cpp:1:
/usr/include/c++/4.4/bits/stl_algobase.h: In static member function ‘static
_OI std::__copy_move