Uzyskaj przechwycone zmienne z lambda?
Zastanawiałem się, czy istnieje sposób na uzyskanie typów / wartości przechwyconych zmiennych lambda? - Scenariusz użycia byłby podobny;
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)
Uwaga:get_capture_*<N>(lambda)
powinien oczywiście powodować błąd kompilatora, kiedyN > #captured_variables
.
To, czego potrzebuję, to w rzeczywistości sposób na uzyskanie dostępu do przechwyceń, jeśli to możliwe. To znaczy, że mogę zrobić sam metaprogramowanie szablonu.