Предположим, что у меня есть эти строки кода;
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 не требует типов, которые нужно указать...)
Update:
Теперь я использую макрос: #define _A(container) decltype(*std::begin(container))
, чтобы я мог:
std::for_each(ints.begin(), ints.end(), [](_A(ints)& val){ val = 7; });