
On Thu, Sep 15, 2011 at 12:21 AM, onlyone@senet.com.au <onlyone@senet.com.au
wrote:
Hi,
I have been trying to use Boost.Container to make a map<copyable_but_not_moveable, moveable_but_not_copyable>.
Unfortunately I have been unable to do this because the value_type of boost::container::map is std::pair, which does not support move semantics (in C++03). This causes problems for the moveable_but_not_copyable type. It means that, for example:
myMap[copyable_but_not_moveable()];
does not compile. This behaviour is fully supported in C++11 mode, and I see no reason why a custom C++03 pair class would be unable to use the Boost.Move emulation to achieve the same effect.
I assume Boost.Container does not provide its own C++03 move-emulation pair class, does it? In which case, probably the fastest way to get such a pair class into Boost.Container is to provide a patch with an implementation. And, yes, I agree that this is a desirable and useful addition. - Jeff