This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
c [2019/08/10 15:21] rpjday [Links] |
c [2019/08/13 12:31] (current) rpjday [Links] |
||
---|---|---|---|
Line 10: | Line 10: | ||
* ''nothrow'' forms of ''new'' and ''delete'' (11.2.4) | * ''nothrow'' forms of ''new'' and ''delete'' (11.2.4) | ||
* initializer lists | * initializer lists | ||
+ | * "using" for type aliases | ||
===== Links ===== | ===== Links ===== | ||
Line 31: | Line 32: | ||
* [[https://en.wikipedia.org/wiki/Compatibility_of_C_and_C++|Compatibility of C and C++]] | * [[https://en.wikipedia.org/wiki/Compatibility_of_C_and_C++|Compatibility of C and C++]] | ||
+ | |||
+ | ===== Stroustrup ===== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== New features in C++11 ===== | ||
+ | |||
+ | ==== move semantics ==== | ||
+ | |||
+ | ==== variadic templates ==== | ||
+ | |||
+ | ==== rvalue references ==== | ||
+ | |||
+ | ==== forwarding references ==== | ||
+ | |||
+ | ==== 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 functions ==== | ||
+ | |||
+ | ==== deleted 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 ==== | ||
+ | |||
+ | ==== ref-qualified member functions ==== | ||
+ | |||
+ | ==== trailing return types ==== | ||
===== Figure out ===== | ===== Figure out ===== | ||
* namespaces | * namespaces | ||
+ | * throw/exceptions | ||
+ | * try/catch | ||
===== Miscellany ===== | ===== Miscellany ===== | ||
Line 51: | Line 119: | ||
* for (auto& x : v) { ++x; } | * for (auto& x : v) { ++x; } | ||
* references in declarations | * references in declarations | ||
+ | * kinds of classes | ||
+ | * concrete | ||
+ | * abstract | ||
+ | |||
+ | ===== Standard library ===== | ||
+ | |||
+ | * ''std::list'' | ||
+ | * ''std::string'' | ||
+ | |||
+ | ===== Coding style ===== | ||
+ | |||
+ | * use "const" as much as possible, to qualify class methods | ||
+ | * functions defined in a class are inlined by default | ||
+ | * define non-member routines if they don't need access to the class | ||
- | ===== Internal C++ links ===== | + | ==== Internal C++ links ===== |
* [[Advanced C++ Links|Advanced C++ Links]] | * [[Advanced C++ Links|Advanced C++ Links]] |