Автоматическое вычисление типа аргумента и анонимные лямбда-функции

Допустим, у меня есть эти строки кода;

std::vector<int> ints;
std::for_each(ints.begin(), ints.end(), [](int& val){ val = 7; });

Однако я не хочу указывать тип аргумента в своих лямбда-функциях, т. Е. Я хочу напишите что-нибудь вроде этого;

std::for_each(ints.begin(), ints.end(), [](auto& val){ val = 7; });

Можно ли как-нибудь достичь этого?

(boost :: lambda не требует указания типов ...)


Обновление:

Сейчас я использую макрос : #define _A (container) decltype (* std :: begin (container)) , чтобы я мог:

std::for_each(ints.begin(), ints.end(), [](_A(ints)& val){ val = 7; });
34
задан Viktor Sehr 21 April 2012 в 21:18
поделиться