As of C++14 it is possible to use auto as the type in a lambda parameter. See: https://isocpp.org/wiki/faq/cpp14-language#generic-lambdas When using this in KDevelop the semantic highlighting reports: 'auto' not allowed as lambda parameter Furthermore the parameter is then in addition marked as unused parameter.
Works for me. No errors reported with this code: auto size = [](const auto& m) { return m.size(); }; Please make sure the internal parser in KDevelop actually is parsing in C++14 mode. Go to Project -> Open Configuration -> Language Support -> C/C++ Parser -> C++ Profile: Custom. Make sure `-std=c++14` is in the line edit.
While it's great that there is such a flexibility I have to disagree with your solution of worksforme. I don't think you can expect your users to know that such settings exist (at least I didn't and I spent about 8h a day in kdevelop using it as my IDE at $work plus the spare time hacking on KWin). The CMakeLists.txt contains set(CMAKE_CXX_STANDARD 14) so I would expect that KDevelop picks up the standard set for the project in CMake.