Details
-
Suggestion
-
Resolution: Invalid
-
Not Evaluated
-
None
-
5.14.2
-
None
Description
when I use auto in function parameter,there always is an error: 'auto' not allowed in function prototype.
#include <iostream> #include <deque> #include <list> #include <vector> #include <functional> static auto consumer(auto& container) { return [&](auto val) {container.push_back(val); }; } static void print(const auto& container) { for (auto i : container) { std::cout << i << ","; } std::cout << std::endl; } int main() { std::list<int> l; std::vector<int> v; std::deque<int> d; const std::vector<std::function<void(int)>>consumers{ consumer(l),consumer(v),consumer(d) }; for (int i = 0; i < 10; ++i) { for (auto &&consumer : consumers) { consumer(i); } } print(l); print(v); print(d); return 0; }
there will be errors in line 7 and line 11 in QT Creator.
config = c17 or c+2a, it can't run.
But it can run propreately with nothing.
Qt version: 5.15.0 MinGW 64-bit
complier: MinGW 8.1.0 64-bit