Being new to C++, on of my biggest gripes is that I often feel unsure whether I'm using the right way to do things, or if I'm using an old method that was replaced by a new one. Especially given that I never took the time to properly learn the language, but mostly piece together SO answers ... .

Is there a C++17-exclusive compiler-flag? Or linters that inform you about outdated concepts? Some way to get rid of the backwards compatible cruft when writing new things.

There is ongoing work to have linters advice on the Core Guidelines items, which are considered the best practices.

https://github.com/isocpp/CppCoreGuidelines

For those that aren't aware, actually some of the input from Microsoft side was based in the work done with Midori and having System C# ideas applied to C++.

VC++ with the code checkers and clang with clang-tidy.

Not sure about the current state of gcc or other commercial C++ compilers.