for better descriptions click here
- move semantics ✔️
- rvalue references ✔️
- variadic templates ✔️
- initializer lists ✔️
- static assertions ✔️
- auto ✔️
- lambda expressions ✔️
- decltype ✔️
- template aliases ✔️
- nullptr ✔️
- strongly-typed enums ✔️
- attributes ❌
- constexpr ✔️
- delegating constructors ✔️
- user-defined literals ✔️
- explicit virtual overrides ✔️
- final specifier ✔️
- default special class functions ✔️
- deleted special class functions✔️
- range-based for loops ✔️
- special member functions for move semantics ✔️
- converting constructors ✔️
- explicit conversion functions ✔️
- inline namespaces ✔️
- non-static data member initializers ✔️
- right angle brackets ✔️
- regular expressions ✔️
- std::move ✔️
- std::forward
⚠️ - std::thread ✔️
- std::async ✔️
- std::future ✔️
- std::to_string ✔️
- type traits ✔️
- smart pointers ✔️
- std::chrono ✔️
- tuples ✔️
- std::array ✔️
- std::forward_list ✔️
- unordered containers ✔️
- std::make_shared ✔️
- std::regex ✔️
- binary literals ✔️
- generic lambda expressions ✔️
- lambda capture initializers ✔️
- return type deduction ✔️
- decltype(auto)✔️
- relaxing constraints on constexpr functions ✔️
- variable templates ✔️
- user-defined literals for standard library types ✔️
- compile-time integer sequences ✔️
- std::make_unique ✔️
- template argument deduction for class templates ✔️
- declaring non-type template parameters with auto ❌
- folding expressions ✔️
- new rules for auto deduction from braced-init-list ✔️
- constexpr lambda ✔️
- lambda capture this by value ✔️
- inline variables ✔️
- nested namespaces ✔️
- structured bindings ✔️
- selection statements with initializer ❌
- constexpr if ✔️
- utf-8 character literals ✔️
- direct-list-initialization of enums ❌
- std::variant ✔️
- std::optional ✔️
- std::any ❌
- std::string_view ❌
- std::invoke ❌
- std::apply ❌
- std::filesystem ✔️
- std::byte ✔️
- splicing for maps and sets ✔️
- parallel algorithms
⚠️
*Legend : checked - done, warning - TO DO, crossed - won't be discussed