C++
(→Specifications: new version) |
|||
(4 intermediate revisions by one user not shown) | |||
Line 5: | Line 5: | ||
|released=1983 | |released=1983 | ||
}} | }} | ||
− | '''C++''' began as a pre-processor for [[C]], and eventually evolved into a programming language in its own right, adding object-oriented classes to a basic syntax still derived from C. It has achieved a great deal of popularity, and has been standardized as ISO/IEC 14882 | + | '''C++''' began as a pre-processor for [[C]], and eventually evolved into a programming language in its own right, adding object-oriented classes to a basic syntax still derived from C. It has achieved a great deal of popularity, and has been standardized as ISO/IEC 14882. |
The name refers to the "increment" operator ++ applied to C, and is not the grade the language's creator received for it as a student project! | The name refers to the "increment" operator ++ applied to C, and is not the grade the language's creator received for it as a student project! | ||
[[C Sharp|C#]] and [[Objective-C]] are other descendants of C which take different approaches to adding object-oriented classes. | [[C Sharp|C#]] and [[Objective-C]] are other descendants of C which take different approaches to adding object-oriented classes. | ||
+ | |||
+ | == Specifications == | ||
+ | === ISO standard === | ||
+ | The final standards are only released for a purchase fee, however the working drafts are available for free.<ref>https://isocpp.org/std/the-standard</ref> | ||
+ | {| class="wikitable" | ||
+ | ! Date !! Common name !! Standard name !! Last working draft<ref>http://en.cppreference.com/w/Cppreference:FAQ#Which_revision_of_the_C.2B.2B_Standard_does_this_reference_adhere_to.3F</ref> | ||
+ | |- | ||
+ | | unfinished || C++23 || ISO/IEC WD 14882 || [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4917.pdf n4917.pdf] | ||
+ | |- | ||
+ | | 2020 || C++20 || ISO/IEC 14882:2020 || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4861.pdf n4861.pdf] | ||
+ | |- | ||
+ | | 2017 || C++17 || ISO/IEC 14882:2017 || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf n4659.pdf] | ||
+ | |- | ||
+ | | 2014 || C++14 || ISO/IEC 14882:2014 || [https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true n4140.pdf] | ||
+ | |- | ||
+ | | 2011 || C++11 || ISO/IEC 14882:2011 || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf n3337.pdf] | ||
+ | |- | ||
+ | | 2003 || C++03 || ISO/IEC 14882:2003 || | ||
+ | |- | ||
+ | | 1998 || C++98 || ISO/IEC 14882:1998 || | ||
+ | |} | ||
+ | |||
+ | === ''The C++ Programming Language'' === | ||
+ | Written by the language creator Bjarne Stroustrup, the book served as the original C++ reference before being standardized. | ||
+ | {| class="wikitable" | ||
+ | ! Date !! Edition !! ISBN | ||
+ | |- | ||
+ | | 2013 || 4th edition || ISBN 0-321-56384-0 | ||
+ | |- | ||
+ | | 2000 || Special edition || ISBN 0-201-70073-5 | ||
+ | |- | ||
+ | | 1997 || 3rd edition || ISBN 0-201-88954-4 | ||
+ | |- | ||
+ | | 1991 || 2nd edition || ISBN 0-201-53992-6 | ||
+ | |- | ||
+ | | 1986 || 1st edition || ISBN 0-201-12078-X | ||
+ | |} | ||
+ | |||
+ | === Compiler extensions === | ||
+ | Compilers commonly include non-standard extensions that might be used. | ||
+ | * [http://clang.llvm.org/docs/LanguageExtensions.html Clang] | ||
+ | * GCC: [https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html C++], [https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html C] | ||
+ | * [https://msdn.microsoft.com/en-us/library/34h23df8.aspx Visual C++] | ||
== See also == | == See also == | ||
Line 15: | Line 58: | ||
== Links == | == Links == | ||
− | |||
* [[Wikipedia:C++|Wikipedia article]] | * [[Wikipedia:C++|Wikipedia article]] | ||
* [http://tgceec.tumblr.com/ The Grand C++ Error Explosion Competition] | * [http://tgceec.tumblr.com/ The Grand C++ Error Explosion Competition] | ||
Line 21: | Line 63: | ||
* [https://web.archive.org/web/20130123080444/http://www.csse.monash.edu.au/~damian/papers/HTML/ModestProposal.html A Modest Proposal: C++ Resyntaxed] (archive.org copy) | * [https://web.archive.org/web/20130123080444/http://www.csse.monash.edu.au/~damian/papers/HTML/ModestProposal.html A Modest Proposal: C++ Resyntaxed] (archive.org copy) | ||
* [http://mindview.net/Books/TICPP/ThinkingInCPP2e.html Thinking in C++ 2nd Edition by Bruce Eckel (free online book)] | * [http://mindview.net/Books/TICPP/ThinkingInCPP2e.html Thinking in C++ 2nd Edition by Bruce Eckel (free online book)] | ||
+ | |||
+ | == References == | ||
+ | <references/> |
Latest revision as of 18:16, 17 November 2022
C++ began as a pre-processor for C, and eventually evolved into a programming language in its own right, adding object-oriented classes to a basic syntax still derived from C. It has achieved a great deal of popularity, and has been standardized as ISO/IEC 14882.
The name refers to the "increment" operator ++ applied to C, and is not the grade the language's creator received for it as a student project!
C# and Objective-C are other descendants of C which take different approaches to adding object-oriented classes.
Contents |
[edit] Specifications
[edit] ISO standard
The final standards are only released for a purchase fee, however the working drafts are available for free.[1]
Date | Common name | Standard name | Last working draft[2] |
---|---|---|---|
unfinished | C++23 | ISO/IEC WD 14882 | n4917.pdf |
2020 | C++20 | ISO/IEC 14882:2020 | n4861.pdf |
2017 | C++17 | ISO/IEC 14882:2017 | n4659.pdf |
2014 | C++14 | ISO/IEC 14882:2014 | n4140.pdf |
2011 | C++11 | ISO/IEC 14882:2011 | n3337.pdf |
2003 | C++03 | ISO/IEC 14882:2003 | |
1998 | C++98 | ISO/IEC 14882:1998 |
[edit] The C++ Programming Language
Written by the language creator Bjarne Stroustrup, the book served as the original C++ reference before being standardized.
Date | Edition | ISBN |
---|---|---|
2013 | 4th edition | ISBN 0-321-56384-0 |
2000 | Special edition | ISBN 0-201-70073-5 |
1997 | 3rd edition | ISBN 0-201-88954-4 |
1991 | 2nd edition | ISBN 0-201-53992-6 |
1986 | 1st edition | ISBN 0-201-12078-X |
[edit] Compiler extensions
Compilers commonly include non-standard extensions that might be used.
- Clang
- GCC: C++, C
- Visual C++
[edit] See also
[edit] Links
- Wikipedia article
- The Grand C++ Error Explosion Competition
- GCC-XML: convert C++ code to XML
- A Modest Proposal: C++ Resyntaxed (archive.org copy)
- Thinking in C++ 2nd Edition by Bruce Eckel (free online book)