Category:C++: Difference between revisions

2,584 bytes added ,  10 months ago
m
Removed dead/broken link
(Changed to named params, someone figure out if type expression is partially implicit or explicit)
m (Removed dead/broken link)
 
(35 intermediate revisions by 16 users not shown)
Line 1:
{{language|C++
|exec=machine
|safety=both
|gc=no
Line 6 ⟶ 7:
|express=explicit
|strength=strong
|compat=both
|compat=both}}'''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]].
|tags=cpp
|hopl id=1202
|LCT=yes
|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}}
|compat=both}}'''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]].
 
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++.
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.
 
==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}}
{{language type expression|Partially implicit}}
 
<br clear="both">
22

edits