
On 6/1/07, Eric Niebler <eric@boost-consulting.com> wrote:
Matias Capeletto wrote:
But when operator[] is not present I have tried to use insert but failed. Being able to parse a file is a nice addition to bimap docs. I know I have to wait to your docs but I want to know now :) Can you help me?
Sure. What is the signature of bimap::insert? In xpressive/regex_action.hpp, there is a lazy insert function object that can be used to insert stuff into sequences, strings and associative containers. For instance, my example could have been written as:
sregex pair = ( (s1= +_w) >> "=>" >> (s2= +_d) ) [ insert(ref(result), make_pair(s1, as<int>(s2))) ];
Great!
But be sure to sync up. I just had to add xpressive::make_pair. :-)
I can not get cvs to work... I think that there is something wrong with sourceforg. I wanna try it... buuu...
which is also equivalent, via some Proto magic, to:
sregex pair = ( (s1= +_w) >> "=>" >> (s2= +_d) ) [ ref(result)->*insert(make_pair(s1, as<int>(s2))) ];
Budu stuff... :) The signature of bimaps insert is the same as standard map inserts. I have a question about the performance of this. Will make_pair create a std::pair? If this is true we are there is an extra copy of each element that I would want to avoid. Is there a way to xpressivize the following code: result.insert( map_type::value_type(s1,s2) ) ? Thanks Regards Matias
-- Eric Niebler Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost