Difference between revisions of "Programming Stream C11 C++11 Exclusions"
(→C++ Part) |
|||
Line 2: | Line 2: | ||
== C++ Part == | == C++ Part == | ||
− | : | + | * new |
+ | : types - specification and qualification | ||
:: alignas alignof – memory alignment for a variable | :: alignas alignof – memory alignment for a variable | ||
Line 8: | Line 9: | ||
:: type-safe enumerations - enum class declaration – not implicitly converted to integers – cannot be compared to integers – underlying type is known - default type is int, can be overridden enum class Enum: unsigned int {vali1, val2} - requires explicit scoping: Enum::val1 – can also use explicit scoping with old-style enum | :: type-safe enumerations - enum class declaration – not implicitly converted to integers – cannot be compared to integers – underlying type is known - default type is int, can be overridden enum class Enum: unsigned int {vali1, val2} - requires explicit scoping: Enum::val1 – can also use explicit scoping with old-style enum | ||
− | : | + | : expressions |
:: raw and cooked User-defined literals – suffix notation – 1234_suffix – numeric literals | :: raw and cooked User-defined literals – suffix notation – 1234_suffix – numeric literals | ||
− | : | + | : encapsulation |
:: default ctor – trivial and non-trivial - POD | :: default ctor – trivial and non-trivial - POD | ||
− | : | + | : library |
:: initializer lists – extends from POD cases to all classes including std containers - initialization-list constructor – T::T(std::initializer_list<type> list) – initializer list is constant and the data in its members cannot be changed | :: initializer lists – extends from POD cases to all classes including std containers - initialization-list constructor – T::T(std::initializer_list<type> list) – initializer list is constant and the data in its members cannot be changed | ||
Line 38: | Line 39: | ||
:: computing return type of function objects | :: computing return type of function objects | ||
− | : | + | : compatibility with C |
:: plain old data – relaxed restrictions POD rules – trivial and std layout | :: plain old data – relaxed restrictions POD rules – trivial and std layout |
Revision as of 12:08, 3 May 2012
Agreed Detail Allocations to 344/300 Appendices
C++ Part
- new
- types - specification and qualification
- alignas alignof – memory alignment for a variable
- type-safe enumerations - enum class declaration – not implicitly converted to integers – cannot be compared to integers – underlying type is known - default type is int, can be overridden enum class Enum: unsigned int {vali1, val2} - requires explicit scoping: Enum::val1 – can also use explicit scoping with old-style enum
- expressions
- raw and cooked User-defined literals – suffix notation – 1234_suffix – numeric literals
- encapsulation
- default ctor – trivial and non-trivial - POD
- library
- initializer lists – extends from POD cases to all classes including std containers - initialization-list constructor – T::T(std::initializer_list<type> list) – initializer list is constant and the data in its members cannot be changed
- tuple types – sets of heterogeneous objects of pre-arranged dimensions
- hash tables – unordered associative containers
- regular expressions
- smart pointers
- random number facility
- wrapper reference
- polymorphic wrappers
- type traits for meta-programming
- computing return type of function objects
- compatibility with C
- plain old data – relaxed restrictions POD rules – trivial and std layout
C Part
- new - add to align with C11
- _Generic( ) - type-generic macros
- complex data type
- macros for construction of complex values
- alignment specifications (_Alignas, _Alignof())
- _Atomic
- _Noreturn
- macros for floating-point characteristics
- quick_exit() (if exit() fails)