Category:C++: Difference between revisions

m
Removed dead/broken link
m (hopl id=1202)
m (Removed dead/broken link)
 
(14 intermediate revisions by 8 users not shown)
Line 13:
|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}}
'''C++''' is named after the [[derived from::compatible with::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]].
 
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. It is the most commonly used and supported version of the language. The term "C++" usually refers to C++98.
* '''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. It is not completely supported by many, if any, compilers, but mostMost 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