[Q] storing function pointers to member function

I am trying to come up with a system that would let me have a function (getter) for every member of the class Using macros I can generate a 'get_<membername> function such that struct my { float mem1; } would be struct my { float mem1; static const float& get_mem1( const my& ) { return my.mem1; } }; Now, I would like to store pointer to the get_mem1 function in a staticaly declared std::map Using boost/function.hpp I can declare a type for float typedef boost::function<const float& (const my& ,const char* )> tFget__float ; and then I can store it in, for example std::set<tFget__float> The problem is that if I have another function that returns a different data type (something other than float, for example std::string) I get a compilation error when trying to insert that function pointer into the set. There is a check implemented, I think, via the template system that prevents compiler from making copies of one ponter type to another -- even though they only differ by return type. When I just do the assignment tFget__float x= <function returning float> or to function returning std::string -- I do not get the error. So I would like to ask -- if there is a good way to store function pointers in a static array (I later on plan to iterate ove the set of function pointers and get the value of each data member into a stream ) thanks in advance, Vlad -- V S P toreason@fastmail.fm -- http://www.fastmail.fm - The professional email service
participants (1)
-
V S P