Это стандартное удержание шаблона функции.Это ничем не отличается от этого:
template<typename T>
auto lamTest(std::initializer_list<T> const & l)
{
std::vector<T> v{ l };
for (auto && e : v)
std::cout << e << " ";
};
Что (кроме std::initializer_list
) является обычным кодом C ++ 98.
Единственное, что добавляет C ++ 20, - это возможностьписать лямбда-выражения с явным списком параметров шаблона, а не (или в дополнение к) в C ++ 14 auto
.В остальном он ведет себя так же, как и любая другая функция шаблона.