Zeljko Vrba wrote:
Hm, a crazy question: what would happen if I decided to declare
map
, pair , pair >
http://www.boost.org/doc/libs/1_35_0/libs/fusion/doc/html/fusion/container/m... "A map may contain at most one element for each key." You'll get a compiler error.
(note the repeated use of int key).. (That was a rhetoric question, I can try that myself :-))
And now a perceived inconsistency within fusion itself -- vector is clearly a map from a set of integers [0..n-1] to types, yet it is not a model of associative sequence.
Then you might also perceive an inconsistency within STL too when a std::vector is not a model of an associative container and a std::vector is not a map? ;-) This is not the place to complain about that. Try the C++ committee :-P
I.e. after having read the documentation for erase_key, it turns out that for vectors one has to use erase(), but erase_key() for maps.. i'm not saying that it's good or bad, it just strikes me as weird.
erase can be applied to maps too. With erase_key, you supply the key. With erase, you supply a range or a position. Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net