C++ Language Program

C++ (/ˌsiːˌplʌsˈplʌs/) is a general-purpose programming accent created by Bjarne Stroustrup as an addendum of the C programming language, or "C with Classes". The accent has broadcast decidedly over time, and avant-garde C++ now has object-oriented, generic, and anatomic appearance in accession to accessories for low-level anamnesis manipulation. It is about consistently implemented as a aggregate language, and abounding vendors accommodate C++ compilers, including the Chargeless Software Foundation, LLVM, Microsoft, Intel, Oracle, and IBM, so it is accessible on abounding platforms.[9]

C++ was advised with a bent against arrangement programming and embedded, resource-constrained software and ample systems, with performance, efficiency, and adaptability of use as its architecture highlights.[10] C++ has additionally been begin advantageous in abounding added contexts, with key strengths actuality software basement and resource-constrained applications,[10] including desktop applications, video games, servers (e.g. e-commerce, Web search, or SQL servers), and performance-critical applications (e.g. blast switches or amplitude probes).[11]

C++ is connected by the International Alignment for Acclimation (ISO), with the latest accepted adaptation ratified and appear by ISO in December 2017 as ISO/IEC 14882:2017 (informally accepted as C++17).[12] The C++ programming accent was initially connected in 1998 as ISO/IEC 14882:1998, which was again adapted by the C++03, C++11 and C++14 standards. The accepted C++17 accepted supersedes these with new appearance and an continued accepted library. Afore the antecedent acclimation in 1998, C++ was developed by Danish computer scientist Bjarne Stroustrup at Bell Labs back 1979 as an addendum of the C language; he capital an able and adjustable accent agnate to C that additionally provided high-level appearance for affairs organization.[13] Back 2012, C++ is on a three-year absolution schedule,[14] with C++20 the abutting planned accepted (and again C++23).[15] History Bjarne Stroustrup, the architect of C++, in his AT&T New Jersey appointment c. 2000

In 1979, Bjarne Stroustrup, a Danish computer scientist, began assignment on "C with Classes", the antecedent to C++.[16] The action for creating a new accent originated from Stroustrup's acquaintance in programming for his PhD thesis. Stroustrup begin that Simula had appearance that were absolute accessible for ample software development, but the accent was too apathetic for applied use, while BCPL was fast but too low-level to be acceptable for ample software development. When Stroustrup started alive in AT&T Bell Labs, he had the botheration of allegory the UNIX atom with account to broadcast computing. Remembering his Ph.D. experience, Stroustrup set out to enhance the C accent with Simula-like features.[17] C was alleged because it was general-purpose, fast, carriageable and broadly used. As able-bodied as C and Simula's influences, added languages additionally afflicted this new language, including ALGOL 68, Ada, CLU and ML.

Initially, Stroustrup's "C with Classes" added appearance to the C compiler, Cpre, including classes, acquired classes, able typing, inlining and absence arguments.[18]

In 1982, Stroustrup started to advance a almsman to C with Classes, which he alleged "C++" (++ actuality the accession abettor in C) afterwards activity through several added names. New appearance were added, including basic functions, action name and abettor overloading, references, constants, type-safe free-store anamnesis allocation (new/delete), bigger blazon checking, and BCPL appearance single-line comments with two advanced slashes (//). Furthermore, Stroustrup developed a new, standalone compiler for C++, Cfront.

In 1984, Stroustrup implemented the aboriginal beck input/output library. The absorption of accouterment an achievement abettor rather than a alleged achievement action was appropriate by Doug McIlroy[1] (who had ahead appropriate Unix pipes).

In 1985, the aboriginal copy of The C++ Programming Accent was released, which became the absolute advertence for the language, as there was not yet an official standard.[19] The aboriginal bartering accomplishing of C++ was appear in October of the aforementioned year.[16]

In 1989, C++ 2.0 was released, followed by the adapted additional copy of The C++ Programming Accent in 1991.[20] New appearance in 2.0 included assorted inheritance, abstruse classes, changeless affiliate functions, const affiliate functions, and adequate members. In 1990, The Annotated C++ Advertence Chiral was published. This assignment became the base for the approaching standard. Later affection additions included templates, exceptions, namespaces, new casts, and a Boolean type. A quiz on C++11 appearance actuality accustomed in Paris in 2015

In 1998, C++98 was released, standardizing the language, and a accessory amend (C++03) was appear in 2003.

After C++98, C++ acquired almost boring until, in 2011, the C++11 accepted was released, abacus abundant new features, accretion the accepted library further, and accouterment added accessories to C++ programmers. Afterwards a accessory C++14 amend appear in December 2014, assorted new additions were alien in C++17.[21] The C++20 accepted became technically accomplished in February 2020,[22] and a abstract was accustomed on 4th September 2020; it is accepted to be appear by the end of 2020.[23][24]

As of 2019, C++ is now the fourth best accepted programming language, abaft Java, C, and Python.[25][26]

On January 3, 2018, Stroustrup was appear as the 2018 champ of the Charles Stark Draper Prize for Engineering, "for conceptualizing and developing the C++ programming language".[27] Etymology

According to Stroustrup, "the name signifies the evolutionary attributes of the changes from C".[28] This name is accustomed to Rick Mascitti (mid-1983)[18] and was aboriginal acclimated in December 1983. When Mascitti was questioned artlessly in 1992 about the naming, he adumbrated that it was accustomed in a tongue-in-cheek spirit. The name comes from C's ++ abettor (which increments the amount of a variable) and a accepted allotment assemblage of application "+" to announce an added computer program.

During C++'s development period, the accent had been referred to as "new C" and "C with Classes"[18][29] afore accepting its final name. Philosophy

Throughout C++'s life, its development and change has been guided by a set of principles:[17]

It charge be apprenticed by absolute problems and its appearance should be anon advantageous in absolute apple programs.
Every affection should be implementable (with a analytic accessible way to do so).
Programmers should be chargeless to aces their own programming style, and that appearance should be absolutely accurate by C++.
Allowing a advantageous affection is added important than preventing every accessible abusage of C++.
It should accommodate accessories for organising programs into separate, categorical parts, and accommodate accessories for accumulation alone developed parts.
No absolute violations of the blazon arrangement (but acquiesce absolute violations; that is, those absolutely requested by the programmer).
User-created types charge to accept the aforementioned abutment and achievement as congenital types.
Unused appearance should not abnormally appulse created executables (e.g. in lower performance).
There should be no accent below C++ (except accumulation language).
C++ should assignment alongside added absolute programming languages, rather than adopting its own abstracted and adverse programming environment.
If the programmer's absorbed is unknown, acquiesce the programmer to specify it by accouterment chiral control.

Standardization Scene during the C++ Standards Committee affair in Stockholm in 1996 C++ standards Year C++ Accepted Informal name 1998 ISO/IEC 14882:1998[30] C++98 2003 ISO/IEC 14882:2003[31] C++03 2011 ISO/IEC 14882:2011[32] C++11, C++0x 2014 ISO/IEC 14882:2014[33] C++14, C++1y 2017 ISO/IEC 14882:2017[12] C++17, C++1z 2020 to be bent C++20,[21] C++2a

C++ is connected by an ISO alive accumulation accepted as JTC1/SC22/WG21. So far, it has appear bristles revisions of the C++ accepted and is currently alive on the abutting revision, C++20.

In 1998, the ISO alive accumulation connected C++ for the aboriginal time as ISO/IEC 14882:1998, which is artlessly accepted as C++98. In 2003, it appear a new adaptation of the C++ accepted alleged ISO/IEC 14882:2003, which anchored problems articular in C++98.

The abutting above afterlight of the accepted was artlessly referred to as "C++0x", but it was not appear until 2011.[34] C++11 (14882:2011) included abounding additions to both the amount accent and the accepted library.[32]

In 2014, C++14 (also accepted as C++1y) was appear as a baby addendum to C++11, featuring mainly bug fixes and baby improvements.[35] The Abstract International Accepted election procedures completed in mid-August 2014.[36]

After C++14, a above afterlight C++17, artlessly accepted as C++1z, was completed by the ISO C++ Committee in mid July 2017 and was accustomed and appear in December 2017.[37]

As allotment of the acclimation process, ISO additionally publishes abstruse letters and specifications:

ISO/IEC TR 18015:2006[38] on the use of C++ in anchored systems and on achievement implications of C++ accent and library features,
ISO/IEC TR 19768:2007[39] (also accepted as the C++ Abstruse Report 1) on library extensions mostly chip into C++11,
ISO/IEC TR 29124:2010[40] on appropriate algebraic functions,
ISO/IEC TR 24733:2011[41] on decimal amphibian point arithmetic,
ISO/IEC TS 18822:2015[42] on the accepted filesystem library,
ISO/IEC TS 19570:2015[43] on alongside versions of the accepted library algorithms,
ISO/IEC TS 19841:2015[44] on software transactional memory,
ISO/IEC TS 19568:2015[45] on a new set of library extensions, some of which are already chip into C++17,
ISO/IEC TS 19217:2015[46] on the C++ concepts, chip into C++20
ISO/IEC TS 19571:2016[47] on the library extensions for concurrency
ISO/IEC TS 19568:2017[48] on a new set of general-purpose library extensions
ISO/IEC TS 21425:2017[49] on the library extensions for ranges, chip into C++20
ISO/IEC TS 22277:2017[50] on coroutines
ISO/IEC TS 19216:2018[51] on the networking library
ISO/IEC TS 21544:2018[52] on modules
ISO/IEC TS 19570:2018[53] on a new set of library extensions for parallelism

More abstruse blueprint are in development and awaiting approval, including changeless reflection.[54] Language

The C++ accent has two capital components: a absolute mapping of accouterments appearance provided primarily by the C subset, and zero-overhead abstractions based on those mappings. Stroustrup describes C++ as "a light-weight absorption programming accent [designed] for architecture and application able and affected abstractions";[10] and "offering both accouterments admission and absorption is the base of C++. Doing it calmly is what distinguishes it from added languages."[55]

C++ inherits best of C's syntax. The afterward is Bjarne Stroustrup's adaptation of the Hello apple affairs that uses the C++ Accepted Library beck ability to address a bulletin to accepted output:[56][57]

#include

int main()

{

std::cout

Did you find this article valuable?

Support R.Harinarayanan by becoming a sponsor. Any amount is appreciated!