
----- Mensaje original -----
De: François Duranleau
On Sat, 21 Jan 2006, JOAQUIN LOPEZ MU?Z wrote:
----- Mensaje original ----- De: Frank Birbacher
Fecha: Sábado, Enero 21, 2006 2:29 am Asunto: [Boost-users] [tuple] no easy access to get function Today I wanted to std::transform a range of tuples into a sequence of one element. I thought I could just take the address of some tuple::get<N> function. Maybe also specify the Tuple type as template>> parameter [...] I'd rather want to take the address of boost::tuple::get
, but the template parameters won't match. Maybe you forgot the final s in "tuples" when writing
boost::tuples::get
There is a thin wrapper declared in the boost namespace as well. The probleme is elsewhere. The argument to the get function is not a boost::tuple<>, but some base class template. Thus the template arguments of the function are not and an integer and a tuple, but an integer and something else (actually, a cons
if you look in the code). To take the address of such a function, you need to bind the integer, as well as HT and TT, not a tuple.
Yep, I see. You're right. Well, you can refer to get<> as follows
boost::tuples::get
However, I am wondering if there would be a problem to declare the thin wrapper simply like this (example with the const version):
template< int N , typename Tuple > inline typename tuples::access_traits< typename tuples::element< N , Tuples >::type >::const_type get( const Tuple& t ) { return tuples::get< N >( c ) ; }
?
That would also work, but my proposal above is simpler. Joaquín M López Muñoz Telefónica, Investigación y Desarrollo _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users