Category:C++: Difference between revisions

1,687 bytes added ,  10 months ago
m
Removed dead/broken link
m (fixed propoerty link)
m (Removed dead/broken link)
 
(23 intermediate revisions by 13 users not shown)
Line 9:
|compat=both
|tags=cpp
|hopl id=1202
|LCT=yes
|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}}'''C++''' is named after the [[C]] language, from which it is derived. C++ extends C into becoming 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]]. [[allows::Capability:Network access| ]][[allows::Capability:Database access| ]][[allows::Capability:Concurrency| ]][[provides::Capability:Run time polymorphism| ]][[provides::Capability:Compile time polymorphism| ]][[allows::Capability:Windowing UI| ]][[allows::Capability:Graphics| ]][[allows::Capability:OpenGL| ]][[allows::Capability:Dynamic linking| ]][[provides::Capability:File access| ]][[allows::Capability:File system access| ]][[provides::Capability:Objects| ]]
}}{{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}}
 
|bnf=http://cpp.comsci.us/syntax/statement/index.html}}{{codepad}}'''C++''' is named after the [[C]] language, from which it is derived. C++ extends C into becoming 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]]. [[allows::Capability:Network access| ]][[allows::Capability:Database access| ]][[allows::Capability:Concurrency| ]][[provides::Capability:Run time polymorphism| ]][[provides::Capability:Compile time polymorphism| ]][[allows::Capability:Windowing UI| ]][[allows::Capability:Graphics| ]][[allows::Capability:OpenGL| ]][[allows::Capability:Dynamic linking| ]][[provides::Capability:File access| ]][[allows::Capability:File system access| ]][[provides::Capability:Objects| ]]
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++.
 
==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]] [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], [[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''' (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|Object-oriented}}
{{language programming paradigm|Functional}}
{{language programming paradigm|Generic}}
<br clear="both">
22

edits