Как получить i-й элемент из std :: tuple, если я не знаю во время компиляции ?

У меня есть переменная i типа std :: size_t и кортеж типа std :: tuple . Я хочу получить i -й элемент кортежа. Я пробовал это:

// bindings... is of type const T&...
auto bindings_tuple = std::make_tuple(bindings...);
auto binding = std::tuple_element<i, const T&...>(bindings_tuple);

Но я получаю эту ошибку компиляции, в которой говорится, что первый аргумент шаблона должен быть целочисленным константным выражением:

ошибка: не типовой аргумент шаблона типа ' std :: size_t ' (aka ' unsigned long ') не является интегральным константным выражением

Можно ли получить i -й элемент кортежа и как это сделать?


Я бы хотел, чтобы это было возможно без ускорения.

19
задан 19 November 2011 в 13:02
поделиться