C ++ 11 и отсутствие полиморфных лямбда-выражений - почему?

я просматривал черновую версию стандарта C ++ 11 . В частности, раздел о лямбдах , и я не понимаю, почему не следует вводить полиморфные лямбды.

Например, среди 100001 способов использования полиморфных лямбд, Я надеялся, что мы сможем использовать следующий код:

template
void foo(Container c)
{
    for_each(c.begin(), c.end(), [](T& t) { ++t; });
}

Каковы были причины:

  • Было ли это тем, что комитету не хватило времени?

  • Эти полиморфные лямбды слишком сложно реализовать?

  • Или, возможно, что они не нужны PTB ?

Примечание. Помните, что приведенный выше пример не единственный, и он предоставляется только в качестве руководства по типам кода. Ответы, которые сосредоточены исключительно на предоставлении обходного пути для вышеуказанного фрагмента кода, не будут считаться действительными!

Связанные источники:

36
задан Community 23 May 2017 в 11:54
поделиться