173 relations: "Hello, World!" program, Abstraction (computer science), Ad hoc polymorphism, Ada (programming language), Alexander Stepanov, ALGOL 68, Algorithm, Anonymous function, Application software, Array data structure, Assembly language, Associative array, BCPL, Bell Labs, Bjarne Stroustrup, Boolean data type, C (programming language), C Sharp (programming language), C standard library, C syntax, C++, C++ Standard Library, C++ Technical Report 1, C++03, C++11, C++14, C++17, C++20, C++Builder, C99, Cfront, Chapel (programming language), Charles Stark Draper Prize, Clang, Class (computer programming), Closure (computer programming), CLU (programming language), Collection (abstract data type), Comparison of programming languages, Compile time, Compiled language, Compiler, Computer memory, Computer performance, Computer scientist, Concepts (C++), Const (computer programming), Curiously recurring template pattern, D (programming language), Data, ..., Decimal floating point, Default argument, Design by committee, Destructor (computer programming), Directive (programming), Distributed computing, Dominance (C++), Donald Knuth, Dynamic dispatch, E-commerce, Edison Design Group, Edsger W. Dijkstra, Embedded software, Exception handling, Feature creep, Free Software Foundation, Fully qualified name, Function object, Function overloading, Functional programming, Garbage collection (computer science), General-purpose programming language, Generic programming, Generics in Java, GNU Compiler Collection, IBM, IBM XL C/C++ Compilers, Imperative programming, Increment and decrement operators, Information hiding, Inheritance (object-oriented programming), Inline expansion, Input/output (C++), Integrated development environment, Intel, Intel C++ Compiler, Interface (computing), International Electrotechnical Commission, International Organization for Standardization, ISO/IEC JTC 1/SC 22, Iterator, Java (programming language), Joshua Bloch, Ken Thompson, Kernel (operating system), Library (computing), Linked list, Linus Torvalds, List of compilers, Low-level programming language, Lua (programming language), Macro (computer science), Memory management, Method overriding, Microsoft, Microsoft Visual C++, ML (programming language), Modular programming, Multiple inheritance, Name mangling, Namespace, Naming convention, Nim (programming language), Nominal type system, Northeastern University, Object code, Object-oriented programming, Operating system, Operator (computer programming), Operator overloading, Outline of C++, Parallel computing, Parameter (computer programming), Parametric polymorphism, Perl, PHP, Polymorphism (computer science), Procedural programming, Programming language, Programming paradigm, Python (programming language), Random number generation, Reflection (computer programming), Regular expression, Resource acquisition is initialization, Richard Stallman, Run time (program lifecycle phase), Run-time type information, Rust (programming language), Short-circuit evaluation, Simula, Smart pointer, Software feature, Space probe, SQL, Stack-based memory allocation, Standard library, Standard Template Library, Standardization, Static dispatch, Strong and weak typing, Substitution failure is not an error, Syntactic sugar, System programming, Telephone exchange, Template (C++), Template metaprogramming, The C++ Programming Language, Thread (computing), Tongue-in-cheek, Transactional memory, Turing completeness, Type conversion, Type inference, Type system, Unix, Value (computer science), Variable (computer science), Variable-length array, Virtual function, Virtual inheritance, Virtual method table, Web search engine. Expand index (123 more) » « Shrink index
A "Hello, World!" program is a computer program that outputs or displays "Hello, World!" to a user.
In software engineering and computer science, abstraction is.
In programming languages, ad hoc polymorphism is a kind of polymorphism in which polymorphic functions can be applied to arguments of different types, because a polymorphic function can denote a number of distinct and potentially heterogeneous implementations depending on the type of argument(s) to which it is applied.
Ada is a structured, statically typed, imperative, and object-oriented high-level computer programming language, extended from Pascal and other languages.
Alexander Alexandrovich Stepanov (Алекса́ндр Алекса́ндрович Степа́нов), born November 16, 1950 in Moscow, is a Russian computer programmer, best known as an advocate of generic programming and as the primary designer and implementer of the C++ Standard Template Library, which he started to develop around 1992 while employed at HP Labs.
ALGOL 68 (short for Algorithmic Language 1968) is an imperative computer programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and more rigorously defined syntax and semantics.
In mathematics and computer science, an algorithm is an unambiguous specification of how to solve a class of problems.
In computer programming, an anonymous function (function literal, lambda abstraction, or lambda expression) is a function definition that is not bound to an identifier.
An application software (app or application for short) is a computer software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user.
In computer science, an array data structure, or simply an array, is a data structure consisting of a collection of elements (values or variables), each identified by at least one array index or key.
An assembly (or assembler) language, often abbreviated asm, is a low-level programming language, in which there is a very strong (but often not one-to-one) correspondence between the assembly program statements and the architecture's machine code instructions.
In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, such that each possible key appears at most once in the collection.
BCPL ("Basic Combined Programming Language"; or 'Before C Programming Language' (a common humorous backronym)) is a procedural, imperative, and structured computer programming language.
Nokia Bell Labs (formerly named AT&T Bell Laboratories, Bell Telephone Laboratories and Bell Labs) is an American research and scientific development company, owned by Finnish company Nokia.
Bjarne Stroustrup (born 30 December 1950) is a Danish computer scientist, who is most notable for the creation and development of the widely used C++ programming language.
In computer science, the Boolean data type is a data type that has one of two possible values (usually denoted true and false), intended to represent the two truth values of logic and Boolean algebra.
C (as in the letter ''c'') is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.
C# (/si: ʃɑːrp/) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.
The C standard library or libc is the standard library for the C programming language, as specified in the ANSI C standard.
The syntax of the C programming language, the rules governing writing of software in the language, is designed to allow for programs that are extremely terse, have a close relationship with the resulting object code, and yet provide relatively high-level data abstraction.
C++ ("see plus plus") is a general-purpose programming language.
In the C++ programming language, the C++ Standard Library is a collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
C++ Technical Report 1 (TR1) is the common name for ISO/IEC TR 19768, C++ Library Extensions, which was a document proposing additions to the C++ standard library for the C++03 language standard.
C++03 is a version of an international standard for the programming language C++.
C++11 is a version of the standard for the programming language C++.
C++14 is a version of the ISO/IEC 14882 standard for the programming language C++.
C++17 is the name for the most recent revision of the ISO/IEC 14882 standard for the C++ programming language.
C++20 is the informal name for the revision of the ISO/IEC standard for the C++ programming language expected to follow C++17.
C++Builder is a rapid application development (RAD) environment, originally developed by Borland and owned by Embarcadero Technologies (a subsidiary of Idera), for writing programs in the C++ programming language targeting Windows NT (IA-32 and x64), macOS, iOS and Android.
C99 (previously known as C9X) is an informal name for ISO/IEC 9899:1999, a past version of the C programming language standard.
Cfront was the original compiler for C++ (then known as "C with Classes") from around 1983, which converted C++ to C; developed by Bjarne Stroustrup.
Chapel, the Cascade High Productivity Language, is a parallel programming language developed by Cray.
The National Academy of Engineering annually awards the Draper Prize, which is given for the advancement of engineering and the education of the public about engineering.
Clang is a compiler front end for the programming languages C, C++, Objective-C, Objective-C++, OpenMP, OpenCL, and CUDA.
In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).
In programming languages, a closure (also lexical closure or function closure) is a technique for implementing lexically scoped name binding in a language with first-class functions.
CLU is a programming language created at the Massachusetts Institute of Technology (MIT) by Barbara Liskov and her students between 1974 and 1975.
In computer science, a collection or container is a grouping of some variable number of data items (possibly zero) that have some shared significance to the problem being solved and need to be operated upon together in some controlled fashion.
Programming languages are used for controlling the behavior of a machine (often a computer).
In computer science, compile time refers to either the operations performed by a compiler (the "compile-time operations"), programming language requirements that must be met by source code for it to be successfully compiled (the "compile-time requirements"), or properties of the program that can be reasoned about during compilation.
A compiled language is a programming language whose implementations are typically compilers (translators that generate machine code from source code), and not interpreters (step-by-step executors of source code, where no pre-runtime translation takes place).
A compiler is computer software that transforms computer code written in one programming language (the source language) into another programming language (the target language).
In computing, memory refers to the computer hardware integrated circuits that store information for immediate use in a computer; it is synonymous with the term "primary storage".
Computer performance is the amount of work accomplished by a computer system.
A computer scientist is a person who has acquired the knowledge of computer science, the study of the theoretical foundations of information and computation and their application.
Concepts are an extension to C++'s templates, published as an ISO Technical Specification ISO/IEC TS 19217:2015.
The curiously recurring template pattern (CRTP) is an idiom in C++ in which a class X derives from a class template instantiation using X itself as template argument.
D is an object-oriented, imperative, multi-paradigm system programming language created by Walter Bright of Digital Mars and released in 2001.
Data is a set of values of qualitative or quantitative variables.
Decimal floating-point (DFP) arithmetic refers to both a representation and operations on decimal floating-point numbers.
In computer programming, a default argument is an argument to a function that a programmer is not required to specify.
Design by committee is a disparaging term for a project that has many designers involved but no unifying plan or vision.
In object-oriented programming, a destructor (dtor) is a method which is automatically invoked when the object is destroyed.
In computer programming, a directive or pragma (from "pragmatic") is a language construct that specifies how a compiler (or other translator) should process its input.
Distributed computing is a field of computer science that studies distributed systems.
In the C++ programming language, dominance refers to a particular aspect of C++ name lookup in the presence of inheritance.
Donald Ervin Knuth (born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University.
In computer science, dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time.
E-commerce is the activity of buying or selling of products on online services or over the Internet.
The Edison Design Group (EDG) is a company that makes compiler front ends (preprocessing and parsing) for C++, Java, and Fortran.
Edsger Wybe Dijkstra (11 May 1930 – 6 August 2002) was a Dutch systems scientist, programmer, software engineer, science essayist, and early pioneer in computing science.
Embedded software is computer software, written to control machines or devices that are not typically thought of as computers.
Exception handling is the process of responding to the occurrence, during computation, of exceptions – anomalous or exceptional conditions requiring special processing – often changing the normal flow of program execution.
Feature creep, creeping featurism or featuritis is the ongoing expansion or addition of new features in a product, especially in computer software and consumer and business electronics.
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on 4 October 1985 to support the free software movement, which promotes the universal freedom to study, distribute, create, and modify computer software, with the organization's preference for software being distributed under copyleft ("share alike") terms, such as with its own GNU General Public License.
In computer programming, a fully qualified name is an unambiguous name that specifies which object, function, or variable a call refers to without regard to the context of the call.
In computer programming, a function object is a construct allowing an object to be invoked or called as if it were an ordinary function, usually with the same syntax (a function parameter that can also be a function).
In some programming languages, function overloading or method overloading is the ability to create multiple methods of the same name with different implementations.
In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.
In computer science, garbage collection (GC) is a form of automatic memory management.
In computer software, a general-purpose programming language is a programming language designed to be used for writing software in the widest variety of application domains (a general-purpose language).
Generic programming is a style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters.
Generics are a facility of generic programming that were added to the Java programming language in 2004 within version J2SE 5.0.
The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages.
The International Business Machines Corporation (IBM) is an American multinational technology company headquartered in Armonk, New York, United States, with operations in over 170 countries.
XL C/C++ is the name of IBM's proprietary optimizing C/C++ compiler for IBM-supported environments.
In computer science, imperative programming is a programming paradigm that uses statements that change a program's state.
Increment and decrement operators are unary operators that add or subtract one from their operand, respectively.
In computer science, information hiding is the principle of segregation of the design decisions in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decision is changed.
In object-oriented programming, inheritance is the mechanism of basing an object or class upon another object (prototypal inheritance) or class (class-based inheritance), retaining the same implementation.
In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the called function.
In the C++ programming language, input/output library refers to a family of class templates and supporting functions in the C++ Standard Library that implement stream-based input/output capabilities.
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development.
Intel Corporation (stylized as intel) is an American multinational corporation and technology company headquartered in Santa Clara, California, in the Silicon Valley.
Intel C++ Compiler, also known as icc or icl, is a group of C and C++ compilers from Intel available for Windows, Mac, Linux, FreeBSD and Intel-based Android devices.
In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information.
The International Electrotechnical Commission (IEC; in French: Commission électrotechnique internationale) is an international standards organization that prepares and publishes International Standards for all electrical, electronic and related technologies – collectively known as "electrotechnology".
The International Organization for Standardization (ISO) is an international standard-setting body composed of representatives from various national standards organizations.
ISO/IEC JTC 1/SC 22 Programming languages, their environments and system software interfaces is a standardization subcommittee of the Joint Technical Committee ISO/IEC JTC 1 of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) that develops and facilitates standards within the fields of programming languages, their environments and system software interfaces.
In computer programming, an iterator is an object that enables a programmer to traverse a container, particularly lists.
Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.
Joshua J. Bloch (born August 28, 1961) is an American software engineer and a technology author, formerly employed at Sun Microsystems and Google.
Kenneth Lane "Ken" Thompson (born February 4, 1943), commonly referred to as ken in hacker circles, is an American pioneer of computer science.
The kernel is a computer program that is the core of a computer's operating system, with complete control over everything in the system.
In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development.
In computer science, a linked list is a linear collection of data elements, whose order is not given by their physical placement in memory.
Linus Benedict Torvalds (born December 28, 1969) is a Finnish-American software engineer who is the creator, and historically, the principal developer of the Linux kernel, which became the kernel for operating systems such as the Linux operating systems, Android, and Chrome OS.
This page is intended to list all current compilers, compiler generators, interpreters, translators, tool foundations, assemblers, automatable command line interfaces (shells), etc.
A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture—commands or functions in the language map closely to processor instructions.
Lua (from meaning moon) is a lightweight, multi-paradigm programming language designed primarily for embedded use in applications.
A macro (short for "macroinstruction", from Greek μακρός 'long') in computer science is a rule or pattern that specifies how a certain input sequence (often a sequence of characters) should be mapped to a replacement output sequence (also often a sequence of characters) according to a defined procedure.
Memory management is a form of resource management applied to computer memory.
Method overriding, in object-oriented programming, is a language feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its superclasses or parent classes.
Microsoft Corporation (abbreviated as MS) is an American multinational technology company with headquarters in Redmond, Washington.
Microsoft Visual C++ (often abbreviated to MSVC) is an integrated development environment (IDE) product from Microsoft for the C, C++, and C++/CLI programming languages.
ML (Meta Language) is a general-purpose functional programming language.
Modular programming is a software design technique that emphasizes separating the functionality of a programme into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit characteristics and features from more than one parent object or parent class.
In compiler construction, name mangling (also called name decoration) is a technique used to solve various problems caused by the need to resolve unique names for programming entities in many modern programming languages.
In computing, a namespace is a set of symbols that are used to organize objects of various kinds, so that these objects may be referred to by name.
A naming convention is a convention (generally agreed scheme) for naming things.
Nim (formerly named Nimrod) is an imperative, multi-paradigm, compiled programming language designed and developed by Andreas Rumpf.
In computer science, a nominal or nominative type system (or name-based type system) is a major class of type system, in which compatibility and equivalence of data types is determined by explicit declarations and/or the name of the types.
Northeastern University (NU, formerly NEU) is a private research university in Boston, Massachusetts, established in 1898.
In computing, object code or object module is the product of a compiler.
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self").
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs.
Programming languages typically support a set of operators: constructs which behave generally like functions, but which differ syntactically or semantically from usual functions.
In programming, operator overloading, sometimes termed operator ad hoc polymorphism, is a specific case of polymorphism, where different operators have different implementations depending on their arguments.
The following outline is provided as an overview of and topical guide to C++: C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language.
Parallel computing is a type of computation in which many calculations or the execution of processes are carried out concurrently.
In computer programming, a parameter (often called formal parameter or formal argument) is a special kind of variable, used in a subroutine to refer to one of the pieces of data provided as input to the subroutine.
In programming languages and type theory, parametric polymorphism is a way to make a language more expressive, while still maintaining full static type-safety.
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages, Perl 5 and Perl 6.
PHP: Hypertext Preprocessor (or simply PHP) is a server-side scripting language designed for Web development, but also used as a general-purpose programming language.
In programming languages and type theory, polymorphism (from Greek πολύς, polys, "many, much" and μορφή, morphē, "form, shape") is the provision of a single interface to entities of different types.
Procedural programming is a programming paradigm, derived from structured programming, based upon the concept of the procedure call.
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.
Programming paradigms are a way to classify programming languages based on their features.
Python is an interpreted high-level programming language for general-purpose programming.
Random number generation is the generation of a sequence of numbers or symbols that cannot be reasonably predicted better than by a random chance, usually through a hardware random-number generator (RNG).
In computer science, reflection is the ability of a computer program to examine, introspect, and modify its own structure and behavior at runtime.
A regular expression, regex or regexp (sometimes called a rational expression) is, in theoretical computer science and formal language theory, a sequence of characters that define a search pattern.
Resource acquisition is initialization (RAII)Bjarne Stroustrup Accessed on 2013-01-02.
Richard Matthew Stallman (born March 16, 1953), often known by his initials, rms—is an American free software movement activist and programmer.
In computer science, run time, runtime or execution time is the time during which a program is running (executing), in contrast to other program lifecycle phases such as compile time, link time and load time.
In computer programming, run-time type information or run-time type identification (RTTI) is a feature of the C++ programming language that exposes information about an object's data type at runtime.
Rust is a systems programming language sponsored by Mozilla which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms.
Short-circuit evaluation, minimal evaluation, or McCarthy evaluation (after John McCarthy) is the semantics of some Boolean operators in some programming languages in which the second argument is executed or evaluated only if the first argument does not suffice to determine the value of the expression: when the first argument of the AND function evaluates to false, the overall value must be false; and when the first argument of the OR function evaluates to true, the overall value must be true.
Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard.
In computer science, a smart pointer is an abstract data type that simulates a pointer while providing added features, such as automatic memory management or bounds checking.
In software, a feature has several definitions.
A space probe is a robotic spacecraft that does not orbit the Earth, but, instead, explores further into outer space.
SQL (S-Q-L, "sequel"; Structured Query Language) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS).
Stacks in computing architectures are regions of memory where data is added or removed in a last-in-first-out (LIFO) manner.
A standard library in computer programming is the library made available across implementations of a programming language.
The Standard Template Library (STL) is a software library for the C++ programming language that influenced many parts of the C++ Standard Library.
Standardization or standardisation is the process of implementing and developing technical standards based on the consensus of different parties that include firms, users, interest groups, standards organizations and governments Standardization can help to maximize compatibility, interoperability, safety, repeatability, or quality.
In computing, static dispatch is a form of polymorphism fully resolved during compile time.
In computer programming, programming languages are often colloquially classified as to whether the language's type system makes it strongly typed or weakly typed (loosely typed).
Substitution failure is not an error (SFINAE) refers to a situation in C++ where an invalid substitution of template parameters is not in itself an error.
In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to express.
System programming (or systems programming) is the activity of programming computer system software.
A telephone exchange is a telecommunications system used in the public switched telephone network or in large enterprises.
Templates are a feature of the C++ programming language that allows functions and classes to operate with generic types.
Template metaprogramming (TMP) is a metaprogramming technique in which templates are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled.
The C++ Programming Language is a computer programming book first published in October 1985.
In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.
The phrase tongue-in-cheek is a figure of speech that describes a statement or other expression that the speaker or author does not mean literally, but intends as humor or otherwise not seriously.
In computer science and engineering, transactional memory attempts to simplify concurrent programming by allowing a group of load and store instructions to execute in an atomic way.
In computability theory, a system of data-manipulation rules (such as a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing complete or computationally universal if it can be used to simulate any Turing machine.
In computer science, type conversion, type casting, and type coercion are different ways of changing an entity of one data type into another.
Type inference refers to the automatic detection of the data type of an expression in a programming language.
In programming languages, a type system is a set of rules that assigns a property called type to the various constructs of a computer program, such as variables, expressions, functions or modules.
Unix (trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, development starting in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.
In computer science, a value is the representation of some entity that can be manipulated by a program.
In computer programming, a variable or scalar is a storage location (identified by a memory address) paired with an associated symbolic name (an identifier), which contains some known or unknown quantity of information referred to as a value.
In computer programming, a variable-length array (VLA), also called variable-sized, runtime-sized, is an array data structure whose length is determined at run time (instead of at compile time).
In object-oriented programming, in languages such as C++, and Object Pascal, a virtual function or virtual method is an inheritable and overridable function or method for which dynamic dispatch is facilitated.
Virtual inheritance is a C++ technique that ensures only one copy of a base class's member variables are inherited by grandchild derived classes.
A virtual method table (VMT), virtual function table, virtual call table, dispatch table, vtable, or vftable is a mechanism used in a programming language to support dynamic dispatch (or run-time method binding).
A web search engine is a software system that is designed to search for information on the World Wide Web.
++C, .cxx, ANSI C++, C Plus Plus, C Plus Plus programming language, C plus plus, C plus plus programming language, C with Classes, C with classes, C++ (Programming Language), C++ (programming language), C++ language, C++ program, C++ programming language, C++ standard, C++ syntax, C+++, C++98, C-plus-plus, C-plus-plus programming language, CPlusPlus, CXX, Cee Plus Plus, Cee plus plus, Core language, Cplusplus, Cxx, History of C++, ISO 14882, ISO C++, ISO C++ programming language, ISO/IEC 14882, ISO/IEC 14882:2003, ISO/IEC 14882:2014, ISO/IEC 14882:2015, Operator overloading in C++, Polymorphism in C++, Rick Mascitti, Sepples, Standard C++ Foundation, X3J16.