Borland C++ 4.0 was my first C++ compiler
The language was invented in 1983 and it was standardized by ISO in 1998.
- The first standard version of C++.
- They found some bugs and fixed them five years later.
- auto - Deduce the type of a variable from its initializer.
- decltype - Get the type of an expression.
- enum class - Do not export their enumerators to the surrounding scope.
- nullptr -
- const / mutable
Containers and iterators
- Range-for - Iterate through a "range", defined by a begin() and end().
- Initializer lists
- Uniform initialization
- Delegating constructors - Call a constructor from a constructor.
- In-class member initializers - Initialized data member when it is declared in the class. Constructor's initialization to override.
- override - Mark that a function is overiding a base class function.
- final - Prevent a virtual function from being overridden further.
- default -
- delete -
Compile time improvements
- constexpr - To mark functions to be evaluated at compile time.
- static_assert - Assert to check things at compile time.
Std library improvements
Rvalue references and move constructors
- alignas - specify a desired alignment for some allocation
- alignof - Returns the alignment of its argument
- Extern template
- Attributes noreturn and carries_dependency
- Binary literals - Use 0b to enter binary numbers.
- Digit separators - Use ' to seperate numbers for readability, does not affect the numeric value. Ex int million = 1'000'000;
- [[deprecated]] - Mark entity deprecated to give a warning message to discouraged use.
- decltype(auto) -
- Constexpr -
- make_unique -
- Type transformation _t aliases
- Nested namespaces - Use namespace resolution operator to create nested namespace definitions.
- Parallel algorithms