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)