C++11 podle mě minimum a C++17 pro nové projekty určitě:
- stricter expression evaluation order (C++17) - šel bych ještě dál
- guaranteed copy elision (C++17)
- noexcept in typedefs (C++17)
- nested namespaces (C++17)
- [[fallthrough]], [[maybe_unused]], etc... (C++17)
- std::string_view (C++17)
- relaxed constexpr (C++14)
- enum : type (C++11)
- constexpr (C++11)
- move semantics / rvalue (C++11)
- lambdas (C++11)
- auto (C++11)
- a mnoho dalších
Možná další ne až tak důležité věci, ale konečně:
- Removing trigraphs (C++17)
- Removing 'register' keyword (C++17)
- Removing throw(...) specifications (C++17)
Z knihoven bych určitě zmínil <cmath>, <atomic>, <utility> a <type_traits>, které jsou podle mě super použitelné. Pro některé to může být i threading, ale já osobně si radši dělám vrstvu nad OS sám. Kontejnery z std nepoužívám, protože teď většinou píšu knihovny a tam je potřeba aby to neházelo výjimky nebo rovnou mělo C-API. S C++17 jsem celkově spokojený a je to určitě krok dopředu, ale asi bych byl radši, kdyby se specifikace víc zaměřovala na jazyk samotný a ne na to co je v std.
Co se týče překladače tak bych doporučil Clang a hned za ním GCC - MSVC a ICC jsou dnes už hodně pozadu. Občas o tom i něco napíšu
tady, ale není moc času no