Я просматривал черновик версии C++11. В частности, раздел lambdas, и я смущен относительно рассуждений о том, что вы не вводите полиморфные лямбды.
Например, среди методов 100001 можно использовать полиморфные лямбда, я надеялся, что мы сможем использовать такой код, как:
template<typename Container>
void foo(Container c)
{
for_each(c.begin(), c.end(), [](T& t) { ++t; });
}
В чем были причины:
-
Неужели у комитета закончилось время?
-
Эти полиморфные лямбды слишком сложны для реализации?
-
Или возможно, что они считаются не требуемыми PTB?
Примечание. Пожалуйста, помните, что приведенный выше пример не является единственным, и он предоставляется только в качестве руководства к типам кода. Ответы, которые сосредоточены исключительно на предоставлении обходного пути для вышеуказанного фрагмента кода, не будут считаться действительными!
Связанные источники:
- Лямбда-выражения и замыкания для С++ (номер документа N1968 = 06-0038)
- Могут ли быть построены шаблоны лямбда?