from what they said when they introduced version switches, https://devblogs.microsoft.com/cppblog/standards-version-switches-in-the-compiler/ , it was supposed to be safe ("The /std:c++latest switch will not turn on new features guarded by the /experimental switch"), so unless something changed, the only potential problems are the bugs in new features.
if you make a habit of using "make warnings into errors" flags, then 17 and earlier code may have obsolete warnings that trigger on it when you get the 20 version.
@jonnin, so far I haven't had any language standard changed/deprecated/removed problems with my newer code. *knocks on Formica* When C++2a becomes official that might change.
Changing some older code to C++11/C++14/C++17 standard with things like auto_ptr and random_shuffle did make the compiler a bit gassy, but that made finding and fixing the problems easier. Fix one problem, recompile and go to the next error.
I don't remember off the top of my head, but there have been several times where I tried running some code it wouldn't allow until I set it to latest. They didn't seem to be C++20 features, but I don't remember what they were now to be sure.
I was at cppreference and while bumping around looking at some other stuff I saw a C++2a feature that really intrigued me because I hadn't noticed it before: the <format> library.
Meh, C++ committee just can’t stay on one path. I’m kind of sick of the stupid mucking with the language.
What format gives you is nice internationalization powers... assuming C++ gets its schnizit together enough to actually handle Unicode properly in the Standard Library...
(Most frameworks will do this stuff for you, like, automatically.)
Maybe I'd just a lazy sod, wanting to not take the time or effort to get a 3rd party library to work. Boost is a lot of "add this directory, do that configuration" grunt work even though the bulk of the library is header only.
I use /std:C++latest since it was introduced, and so far encountered 2 bugs, both of which were caused by compiler.
1. internal compiler error when using in class inline static smart pointer initialization
2. compiler failed to evaluate constexpr statement, which is otherwise perfectly valid and constexpr
I was not able to repro these 2 with /std:C++17
This doesn't bother me at all, it was easy to workaround, what positive (at least in my case)
is that I encountered no code related bugs (by using standard headers) or new language features and API's.