Получить захваченные переменные из лямбды?
Мне было интересно, есть ли способ получить типы / значения захваченных переменных лямбды? - сценарий использования будет чем-то похожим;
int a = 5;
auto lamb = [a](){ return a; };
static_assert(std::is_same<typename get_capture_type<0>(lamb)::type, int>::value, "");
assert(get_capture_value<0>(lamb) == 5)
Примечание:get_capture_*<N>(lambda)
должно привести к ошибке компилятора, когдаN > #captured_variables
.
Что мне действительно нужно, так это просто способ получить доступ к снимкам, если это возможно. То есть я могу сам заниматься шаблонным метапрограммированием.