C++

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m
(Specifications: new version)
 
(10 intermediate revisions by 5 users not shown)
Line 2: Line 2:
 
|formattype=Languages
 
|formattype=Languages
 
|subcat=Programming Languages
 
|subcat=Programming Languages
|extensions={{ext|cpp}}, {{ext|h}}
+
|extensions= {{ext|cpp}}, {{ext|cc}}, {{ext|cxx}}, {{ext|c++}}, {{ext|h}}, {{ext|hh}}, {{ext|hpp}}
 
|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:2003.
+
'''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 stundent 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 ==
 +
* [[C++ data types]]
  
 
== Links ==
 
== Links ==
* [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf Working draft of C++ standard]
 
 
* [[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]
 
* [http://gccxml.github.io/HTML/Index.html GCC-XML: convert C++ code to XML]
 
* [http://gccxml.github.io/HTML/Index.html GCC-XML: convert C++ code to XML]
 +
* [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)]
 +
 +
== References ==
 +
<references/>

Latest revision as of 18:16, 17 November 2022

File Format
Name C++
Ontology
Extension(s) .cpp, .cc, .cxx, .c++, .h, .hh, .hpp
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.

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.

[edit] See also

[edit] Links

[edit] References

  1. https://isocpp.org/std/the-standard
  2. http://en.cppreference.com/w/Cppreference:FAQ#Which_revision_of_the_C.2B.2B_Standard_does_this_reference_adhere_to.3F
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox