
On 06/27/2005 07:09 AM, Pavel Chikulaev wrote:
"Roman Yakovenko" <roman.yakovenko@actimize.com> wrote in message news:BC29F2A417B44F44BD3AA1AD9868CEDC07F9C6@ilexchange.adrembi.com...
If you try to solve code readability then adding simple enum, even unnamed, solves the problem
enum { name, year }; s.get<name>()
I don't like this, because of the following: tuple<double, double> s; enum { width, height }; tuple<double, double> p; enum { apples_weight, bananas_weight }; s.get<width>() = 1.04; double apples_price = s.get<apples_weight>()* 5; (mistake: there should be p instead of s) Would something from indexed_types:
http://cvs.sourceforge.net/viewcvs.py/boost-sandbox/boost-sandbox/boost/inde... satisfy you needs? It would have the problem mentioned above because the "index" (i.e. the enumerator) is specific to the tuple. IOW s.get<apples_weight>() would result in a compile time error because s.get<...> requires something from: enum width_height{width,height}; Of course, instead of get, the template member function, in the case of composite_product.hpp, is project<...>; so, it would actually be: s.project<width>()