元组索引的模板参数推导

The*_*ign 0 c++ templates

template < typename TYPE, typename TUPLE, int INDEX >
void fun( TYPE& a, TUPLE b )
{
  a = std::get<INDEX>( b );
}
Run Code Online (Sandbox Code Playgroud)

调用上面的方法很乏味:

//...
using tuple_t = std::tuple<int, double, double>;
double d;
fun<double, tuple_t, 1>( d, std::make_tuple( 1, 2.3, 4.5 ) );
//...
Run Code Online (Sandbox Code Playgroud)

更好的方法吗?例如:

fun( d, std::make_tuple( 1, 2.3, 4.5 ), 1 );
Run Code Online (Sandbox Code Playgroud)

Hol*_*Cat 5

制作int INDEX一个模板参数。调用函数时指定,并允许推导其他参数:fun<1>(d, std::make_tuple(1, 2.3)).