unable to use find() function in boost::associative property maps.

Hi, The current boost::associative_property_map interface in boost::property_map does not provide a *find()* function interface from where we can find a key type from associative map. Although the associative property map concept was mainly developed for using boost::get and boost::put function efficiently on unique associative containers (such as std::map), it still does not have any interface for using find() function for searching whether an element exists in a map, My problem is explained below: I have a map, and I define a associative property map on it. as follows: std::map< int, int > *mymap*; boost::associative_property_map< std::map< int, int > > *my_asso_map* ( mymap ); I have a template function, named " exists_in " which checks whether a particular key_value, is present in the map or not. The function is as follows: *template* <typename map_t, typename key_t> bool *exists_in*(map_t map, key_t key) { return map.*find*(key) != map.end(); } ======================================== If I call this template function on mymap, it gives me no error: if( !exists_in ( mymap, key ) ----> no error Now, if I call template function on my_asso_map, it throws an error : if( !exists_in( my_asso_map, key ) ---->> error error: âclass boost::associative_property_map<std::map<int, int > >â has no member named âendâ error: âclass boost::associative_property_map<std::map<int, int > >â has no member named âfindâ I understand, my_asso_map just stores the address of mymap and provides get and put efficiently. But there are instances, where I have to *search* a key in my map. ( for example, if else loop as provided above ). I want to hide *mymap *and just expose *my_asso_map* to the user and everywhere I want to pass my_asso_map.. I am able to do this except for the *find*() function, because of which I had to keep passing my original *mymap *to the function/ functor and then use exists_in template function. Is there any way to implement a find() utility for associative property maps ? If find() interface can be added in library, that would be simply great ! Thanks, -- Thanks and regards, Aniket Pugaonkar
participants (1)
-
Aniket Pugaonkar