Lets say I have these lines of code;
std::vector<int> ints;
std::for_each(ints.begin(), ints.end(), [](int& val){ val = 7; });
However, I dont want to specify the argument type in my lambda functions, ie, I want to write something like this;
std::for_each(ints.begin(), ints.end(), [](auto& val){ val = 7; });
Is there anyway this can be achieved?
(boost::lambda doesn't need types to be specified...)
Update:
For now I use a macro: #define _A(container) decltype(*std::begin(container))
so I can do:
std::for_each(ints.begin(), ints.end(), [](_A(ints)& val){ val = 7; });
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…