Для c ++ 20 предлагается добавить следующий синтаксис для универсальных лямбд p0428r2.pdf
auto f = []<typename T>( T t ) {};
Но текущая реализация в gcc 8 не приняла следующую реализацию:
f<std::string>("");
Это ошибка реализации в gcc или отсутствующая языковая функция?Я знаю, что мы говорим о предложении, а не об утвержденной спецификации.
Полный пример (со сравнением с синтаксисом функции шаблона):
template <typename T> void n( T t ) { std::cout << t << std::endl; }
auto f = []<typename T>( T t ) { std::cout << t << std::endl; };
int main()
{
f<std::string>("Hello"); // error!
n<std::string>("World");
}
жалуется со следующей ошибкой:
main.cpp: 25: 22: ошибка: ожидаемое первичное выражение перед маркером '>' f ("Hello");