Boost logo

Boost :

Subject: Re: [boost] [container] Issues with non-copyable mapped-types
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2011-09-15 15:12:31


On Thu, Sep 15, 2011 at 12:21 AM, onlyone_at_[hidden] <onlyone_at_[hidden]
> 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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk