Boost logo

Boost :

Subject: [boost] boost::adaptors::keys for mutable ranges of pairs
From: Valentin Ziegler (vziegler_at_[hidden])
Date: 2012-02-23 05:06:39


Hello,

map.hpp defines two overloads for adaptors::values, one for
StdPairRange& and another for const StdPairRange const& rng. On the
other hand, there is just a single adaptors::keys which takes
StdPairRange const&. In particular, the code below will not compile:

boost::find_if(
        boost::adaptors::keys(rng),
        SomePredicate()
).base()->second=NewValue();

Therefore, I would propose an adaptors::keys(StdPairRange& rng) overload
similar to adaptors::values(StdPairRange&). Iterators of the returned
range shall have a mutable base iterator. Further, iterators of the
returned range should have a reference type of
range_value<StdPairRange>::type::first_type& , so the elements in keys
are mutable where StdPairRange admits this.

Regards,
Valentin

--
Valentin Ziegler | vziegler_at_[hidden]
Software Engineer
think-cell Software GmbH | Chausseestr. 8/E | 10115 Berlin | Germany
http://www.think-cell.com | phone +49 30 666473-10 | US phone +1 800 891 8091
Amtsgericht Berlin-Charlottenburg, HRB 85229 | European Union VAT Id DE813474306
Directors: Dr. Markus Hannebauer, Dr. Arno Schoedl

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