4
#include <utility>
#include <tuple>
template < typename T, typename U >
void h(T, U)
{
}
template < typename... T, typename... U >
void f(std::tuple <T...> t, std::tuple <U...> u)
{
auto g = [&] < std::size_t... I > (std::index_sequence <I...>)
{
bool const r[]{((void)h(std::get <I>(t), std::get <I>(u)), false)...};
(void)r;
};
g(std::index_sequence_for <T...>());
}
int main()
{
f(std::make_tuple(0L, 0LL), std::make_tuple(0UL, 0ULL));
}
以上編譯與g++ test_templated_lambda.cpp -o test_templated_lambda -std=c++14
,但不與clang++ test_templated_lambda.cpp -o test_templated_lambda -std=c++14
通用lambda函數
編譯我知道這是一個GCC擴展(Using template parameter in a generic lambda),但有一些方法來做到這一點沒有寫出g
作爲一個自由函數
有用的。但我試圖避免定義另一個效用函數 – zrb