Получить захваченные переменные из лямбды?

Мне было интересно, есть ли способ получить типы / значения захваченных переменных лямбды? - сценарий использования будет чем-то похожим;

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.

Что мне действительно нужно, так это просто способ получить доступ к снимкам, если это возможно. То есть я могу сам заниматься шаблонным метапрограммированием.

Ответы на вопрос(2)

Ваш ответ на вопрос