C + + History

Source: Internet
Author: User

C + + history early C + +

• 1979: First implementation of the Introduction Class C (c with Classes-implemented)

1. New features: class, member function, inheritance class, standalone compilation, public and private access control, friend, function parameter type check, default parameter, inline function, assignment symbol overload, constructor, Destructor, F () equivalent f (void), call function and return function (synchronization mechanism, not in C + +)
2. Library: Concurrent Task Library (not in C + +)

• 1982: Publish the Reference manual for the introduction class C (c with Classes reference manual published)

1984:c84 Implementation, reference manual release (C84 implemented, reference manual published)

1985:cfront 1.0

1. New features: Virtual functions, function and operator overloads, references, new and delete operators, const keywords, scope resolution operators::
2. Newly added library: complex number (complex), string, input and output stream (iostream)

• 1985: The first edition of the C + + programming language (the C + + programming Language, 1st edition)

1989:cfront 2.0

1. New features: Multiple inheritance, member pointers, Protected access control, type safe joins, abstract classes, static and constant member functions, new and delete for specific classes
2. New library: I/O operator

• 1990: Note on C + + reference manual (the annotated C + + Reference Manual)
The book describes the language from a design level, including some features that have not yet been implemented, and it has become a de facto standard before the ISO standard.

1. New features: namespaces, exception captures, inner classes

1991:cfront 3.0

• 1991: Second edition of the C + + programming language (the C + + programming Language, 2nd edition)

Standard C + +

1990 ANSI C + + committee established (ANSI C + + committee founded)

1991 ISO C + + committee established (ISO C + + committee founded)

1998 C++98 (iso/iec14882:1998)

1. New features: Run-time type information [RTTI (dynamic_cast, typeid)], covariant return type (covariant return types), cast operator, mutable, Boolean, declaration case, template example, member template, export
2. New library: Containers, algorithms, iterators, function Objects (STL), locales, bit sets, value vectors, auto pointers (auto_ptr), modular strings, input and output streams, and complex numbers

1998 Third edition of the C + + programming language (the C + + programming Language, 3rd edition)

1999 Boost is a member of the board, designed to develop new high-quality libraries as candidates for the standard library (boost founded by the committee members to produce new High-quality candidate LIBR Aries for the standard)

2003 C++03 (ISO/IEC 14,882:2003)
This is a minor revision and fixes some bugs.

1. New Feature: Initialize value
Compile error report fix: 125, including error 69th, this error is continuously generated std::vector

2006 Performance Technical Report [Performance TR (ISO/IEC TR 18015:2006) (2006 draft)]

• 2007 2007 Expansion Library First report [extension TR1 (ISO/IEC TR 19768:2007) (2005 draft)]
This technical report is a C + + library extension that includes the following:

1. From boost: Reference wrapper (Reference wrapper), smart pointer (smart pointers), member function (Member function), Result of, bind (binding), function, Type characteristics (type traits), random, Mathematical special functions (mathematical special Functions), tuples (tuple), arrays (array), unordered containers [Unordered Containers (hash)] and regular expressions (Regular Expressions)
2. The new mathematical function, whitespace character class, floating-point environment (floating-point environment), hexadecimal floating-point I/O operator (hexfloat I/O manipulator) are also newly added to the c99:math.h from the C99. Fixed-size integer-type (fixed-size integral types), long-integer (the long type), Va_copy, snprintf (), and vscanf () function families, and C99 printf () and scanf () The specified transformation of the function family
TR1 except for some special functions, most of them are included in the c++11.

• 2010 Technical Report on mathematical special functions [Mathematical Special Functions TR (ISO/IEC 29124:2010) (in draft)]
This TR is a C + + standard library extension, adding some special functions in TR1, but those functions were not included in the c++11: elliptic integrals, exponential integrals, Laguerre polynomials (Laguerre polynomials), le-Jean polynomial (Legendre polynomials), Ermeti polynomial (Hermite polynomials), Bezier (Bessel) function, Newman (Newmann) function, β function, and Riemann (Riemann) ζ function

·2011 c++11 (ISO/IEC 14882:2011) (ANSI Store) (post-publication draft)
For C + + programmers, there are a number of changes available in the standardization of existing practices and the promotion of abstract concepts.

1. New language Features: Automatic (auto) and type get (Decltype), Default and deleted functions (defaulted and deleted functions), non-change (final) and overloaded (override), Trailing return type (trailing return kind), rvalue reference (Rvalue references), move constructor (move constructors)/move assignment (move assignment), scope enumeration (scoped enums), constant Expressions (constexpr) and literal types (literal types), list initialization (list initialization), Authorization (delegating), and inheritance constructors (inherited constructors), curly braces or equals (brace-or-equal) initializers, null pointers (nullptr), long integers (long long), char16_t and char32_t, type aliases (types aliases), Variable parameter templates (variadic templates), generalized unions (generalized unions), generalized pods, Unicode string literals (Unicode string literals), Custom text (user-defined literals), attributes (attributes), lambda expressions (lambda expressions), no exceptions (noexcept), alignment queries (alignof), and alignment designations (Alignas), Multithreaded memory model (multithreaded), thread local storage (thread-local storage), GC interface (GC interface), range for (based on a Boost library) , static assertion [static assertions (based on a Boost library)]
2. New library Features: Atomic Operations Library (Atomic Operations Library), Emplace () and rvalue references throughout the existing library using, std::initializer_list, stateful, and scoped allocators (stateful and scoped allocators), forward list (forward_list), timing Library (Chrono Library), fractional library (ratio library), New algorithm (newly algorithms), Unicode Conversion facets
3. From TR1: Except for special functions, all TR1 are included.
4. From boost: line libraries (the thread library), exception pointer (exception_ptr), error code (ERROR_CODE) and error conditions (error_condition), iterator improvements [iterator Improvements (Std::begin, Std::end, Std::next, std::p rev)]
5. Unicode conversion functions originating from the C:C style
6. Collect error report fix: 363 errors were resolved in draft 2008, and 322 errors were fixed. The errors include number No. 530, which causes the Std::basic_string object to be connected.

• 20,110 binary floating point Technical report [Decimal floating-point TR (ISO/IEC TR 24733:2011) (draft)]
This TR is based on the IEEE 754-2008 floating-point arithmetic standard (floating arithmetic): std::d ecimal::d ecimal32, std::d ecimal::d ecimal64, std::d ecimal ::d ecimal128

• 2012 Standard C + + Foundation established (The standards C + + Foundation founded)

2013 "C + + programming language Fourth Edition" the C + + programming Language, 4th edition

Future development

*2014 c++14 (Final draft)
Next minor revision of the C + + standard

1. New language Features: variable template (variable templates), polymorphic λ (polymorphic lambdas), λ motion capture (move capture for Lambdas), New/delete elision, The constant expression function relaxes the limit (relax restrictions on constexpr functions), binary text (binary literals), numeric delimiter (digit separators), function return type deduction (return Type deduction for functions), initializes the class with a brace or an equal-set initializer
2. New library Features: Std::make_unique, Std::shared_mutex and Std::shared_lock, Std::index_sequence, Std::exchange, std::quoted, There are also many minor improvements to existing libraries, such as the double-distance overloads of some algorithms (Two-range overloads for some algorithms), type alias versions of type features (type alias versions of type traits), User-defined string (user-defined string), Duration (duration), and complex numeric text (complex number literals), etc.
3. Collect bug report fix: library 149th (149 issues)
Basic Library Technical Specifications (Library Fundamentals TS), File System technical Specifications (Filesystem TS) and other professional technical specifications (experimental technical specifications)

2017 c++17
Next major revision of the C + + standard

C + + history

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.