Difference between revisions of "Programming Stream C11 C++11 Exclusions"

From CDOT Wiki
Jump to: navigation, search
(C++ Part)
Line 2: Line 2:
 
== C++ Part ==
 
== C++ Part ==
  
: new - types - specification and qualification
+
* 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
  
:: new - expressions
+
: 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
  
:: new - encapsulation
+
: encapsulation
  
 
:: default ctor – trivial and non-trivial - POD
 
:: default ctor – trivial and non-trivial - POD
  
:: new - library
+
: 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
  
:: new - compatibility with C
+
: 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)