Category:C++: Difference between revisions

From Rosetta Code
Content added Content deleted
(Updated status of C++17, added links)
m (Removed dead/broken link)
 
(9 intermediate revisions by 3 users not shown)
Line 13: Line 13:
|bnf=http://cpp.comsci.us/syntax/statement/index.html}}{{codepad}}{{allows|Network access}}{{allows|Database access
|bnf=http://cpp.comsci.us/syntax/statement/index.html}}{{codepad}}{{allows|Network access}}{{allows|Database access
}}{{allows|Concurrency}}{{provides|Run time polymorphism}}{{provides|Compile time polymorphism}}{{allows|Windowing UI}}{{allows|Graphics}}{{allows|OpenGL}}{{allows|Dynamic linking}}{{provides|File access}}{{allows|File system access}}{{provides|Objects}}{{allows|Signal handling}}{{provides|Mutable state}}
}}{{allows|Concurrency}}{{provides|Run time polymorphism}}{{provides|Compile time polymorphism}}{{allows|Windowing UI}}{{allows|Graphics}}{{allows|OpenGL}}{{allows|Dynamic linking}}{{provides|File access}}{{allows|File system access}}{{provides|Objects}}{{allows|Signal handling}}{{provides|Mutable state}}
'''C++''' is named after the [[derived from::compatible with::C]] language, from which it is derived. C++ extends C into an [[object-oriented language]]. However, unlike other object-oriented languages, it doesn't try to force you into [[object-oriented programming]], but is a multi-[[:Category:Programming Paradigms|paradigm]] language. Besides conventional [[procedural programming]] and object-oriented programming, it also supports [[generic programming]].
'''C++''' is named after the C language, from which it is derived. C++ extends C into an [[object-oriented language]]. However, unlike other object-oriented languages, it doesn't try to force you into [[object-oriented programming]], but is a multi-[[:Category:Programming Paradigms|paradigm]] language. Besides conventional [[procedural programming]] and object-oriented programming, it also supports [[generic programming]].

The ++ in C++ is some what of an inside joke, in that C++ is C with a Post Increment operator attached, thus C++ is C + 1; however, this interpretation has the flaw that post-increment increments the value ''after'' returning the value, so the post-increment expression still evaluates to the value before the increment.


If you can't find an implementation for your task in the C++ category below, please look in the [[C]] category, as many of the tasks can be implemented identically in C and C++.
If you can't find an implementation for your task in the C++ category below, please look in the [[C]] category, as many of the tasks can be implemented identically in C and C++.


==Versions==
==Versions==
* '''C++98''' is the version of C++ standardized by ISO in 1998. It is the most commonly used and supported version of the language. The term "C++" usually refers to C++98.
* '''C++98''' is the version of C++ standardized by ISO in 1998.
* '''C++03''' is a minor improvement to C++98, standardized by ISO in 2003.
* '''C++03''' is a minor improvement to C++98, standardized by ISO in 2003.
* '''TR1''' (Technical Report 1) is a proposal for extensions to the C++ standard library. It was published in 2007. Many of its proposals made it into C++11. Many compilers support it, but put its headers in a different directory.
* '''TR1''' (Technical Report 1) is a proposal for extensions to the C++ standard library. It was published in 2007. Many of its proposals made it into C++11. Many compilers support it, but put its headers in a different directory.
* '''C++11''' (formerly called '''C++0x''' and sometimes '''C++1x''') is a significant improvement, adding many new language features and libraries. It was standardized by ISO in 2011. Most of its features are available in [[GCC]] [http://gcc.gnu.org/projects/cxx0x.html] and [[Clang]] [http://clang.llvm.org/cxx_status.html].
* '''C++11''' (formerly called '''C++0x''' and sometimes '''C++1x''') is a significant improvement, adding many new language features and libraries. It was standardized by ISO in 2011. Most of its features are available in [[GCC]] [http://gcc.gnu.org/projects/cxx0x.html] and [[Clang]] [http://clang.llvm.org/cxx_status.html].
* '''C++14''' (formerly called '''C++1y''') is a minor improvement to C++11, standardized by ISO in 2014. Most of its features are available in [[Clang]] [http://clang.llvm.org/cxx_status.html] and [[GCC]] [http://gcc.gnu.org/projects/cxx1y.html].
* '''C++14''' (formerly called '''C++1y''') is a minor improvement to C++11, standardized by ISO in 2014. Most of its features are available in [[Clang]] [http://clang.llvm.org/cxx_status.html], [[GCC]] [http://gcc.gnu.org/projects/cxx1y.html], and [[Visual C++]][https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-160].
* '''C++17''' (still currently called '''C++1z''') is a minor improvement to C++14 that has reached ''Draft International Standard'' [https://en.wikipedia.org/wiki/C++17] in March 2017, meaning publication is due very soon. Most of its features are already available in [[Clang]] [http://clang.llvm.org/cxx_status.html] and [[GCC]] [https://gcc.gnu.org/projects/cxx-status.html#cxx14].
* '''C++17''' (formerly called '''C++1z''') is a minor improvement to C++14, standardized by ISO in 2017. Most of its features are available in [[Clang]] [http://clang.llvm.org/cxx_status.html], [[GCC]] [https://gcc.gnu.org/projects/cxx-status.html#cxx17], and [[Visual C++]][https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-160].
* '''C++20''' (formerly called '''C++2a''') is a major improvement to C++17, standardized by ISO in 2020. Most of its features are implemented by [[Clang]] [http://clang.llvm.org/cxx_status.html], [[GCC]] [https://gcc.gnu.org/projects/cxx-status.html#tses], and [[Visual C++]][https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-160]
* '''C++23''' (alternatively '''C++2b''') is a minor improvement to C++20, expected to be standardized by ISO in 2023. Experimental support exists in [[GCC]][https://gcc.gnu.org/projects/cxx-status.html#cxx23] and [[Clang]][https://clang.llvm.org/cxx_status.html]


{{language programming paradigm|Imperative}}
{{language programming paradigm|Imperative}}
{{language programming paradigm|Object-oriented}}
{{language programming paradigm|Object-oriented}}
{{language programming paradigm|Functional}}
{{language programming paradigm|Generic}}
{{language programming paradigm|Generic}}
<br clear="both">
<br clear="both">

Latest revision as of 19:28, 16 July 2023

Language
C++
This programming language may be used to instruct a computer to perform a task.
Execution method: Compiled (machine code)
Garbage collected: No
Parameter passing methods: By reference, By value
Type safety: Safe, Unsafe
Type strength: Strong
Type compatibility: Nominative, Structural
Type expression: Explicit
Type checking: Dynamic, Static
Lang tag(s): cpp
See Also:
Listed below are all of the tasks on Rosetta Code which have been solved using C++.
Try this language on Codepad.

C++ is named after the C language, from which it is derived. C++ extends C into an object-oriented language. However, unlike other object-oriented languages, it doesn't try to force you into object-oriented programming, but is a multi-paradigm language. Besides conventional procedural programming and object-oriented programming, it also supports generic programming.

If you can't find an implementation for your task in the C++ category below, please look in the C category, as many of the tasks can be implemented identically in C and C++.

Versions

  • C++98 is the version of C++ standardized by ISO in 1998.
  • C++03 is a minor improvement to C++98, standardized by ISO in 2003.
  • TR1 (Technical Report 1) is a proposal for extensions to the C++ standard library. It was published in 2007. Many of its proposals made it into C++11. Many compilers support it, but put its headers in a different directory.
  • C++11 (formerly called C++0x and sometimes C++1x) is a significant improvement, adding many new language features and libraries. It was standardized by ISO in 2011. Most of its features are available in GCC [1] and Clang [2].
  • C++14 (formerly called C++1y) is a minor improvement to C++11, standardized by ISO in 2014. Most of its features are available in Clang [3], GCC [4], and Visual C++[5].
  • C++17 (formerly called C++1z) is a minor improvement to C++14, standardized by ISO in 2017. Most of its features are available in Clang [6], GCC [7], and Visual C++[8].
  • C++20 (formerly called C++2a) is a major improvement to C++17, standardized by ISO in 2020. Most of its features are implemented by Clang [9], GCC [10], and Visual C++[11]
  • C++23 (alternatively C++2b) is a minor improvement to C++20, expected to be standardized by ISO in 2023. Experimental support exists in GCC[12] and Clang[13]


Subcategories

This category has the following 3 subcategories, out of 3 total.

Pages in category "C++"

The following 200 pages are in this category, out of 1,275 total.

(previous page) (next page)

A

C

(previous page) (next page)