Допустим, у меня есть эти строки кода;
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; });