Title: Theory / Unimportant / CS / Programming / C++ / Manual / Norm

Name: C++
Creator: Bjarne Stroustrup
Other fields (not shown on cards):
Extension of code file: cpp
Mutability: Everything unless stated const (or private from other part)
Successor of: C
Interpreter: None notable
Compiler: gcc, libc
Object-oriented: yes
Block creation: Curly braces
Call paradigm: by value
Variable typing: Static, strong
Eval: no?
Value typing: ?
Class: Yes
Goal: system programming and embedded, resource-constrained software and large systems, with performance, efficiency, and flexibility of use as its design highlights
It must be driven by actual problems and its features should be immediately useful in real world programs.
Every feature should be implementable (with a reasonably obvious way to do so).
Programmers should be free to pick their own programming style, and that style should be fully supported by C++.
Allowing a useful feature is more important than preventing every possible misuse of C++.
It should provide facilities for organising programs into separate, well-defined parts, and provide facilities for combining separately developed parts.
No implicit violations of the type system (but allow explicit violations; that is, those explicitly requested by the programmer).
User-created types need to have the same support and performance as built-in types.
Unused features should not negatively impact created executables (e.g. in lower performance).
There should be no language beneath C++ (except assembly language).
C++ should work alongside other existing programming languages, rather than fostering its own separate and incompatible programming environment.
If the programmer's intent is unknown, allow the programmer to specify it by providing manual control.
Mainteneur: ISO/IEC JTC1 joint tecnical committee
Storage management: Explicit creation/destruction or in stack
Tail call optimization: no ?
Integral arithmetic: fixed
In stack: Everything except if explicitly created with new or unknown size array
Inheritance: Multiple
Polymorphism: With template
Compiled file extension: .o .exe
Lauching: int main()
Extension of header file: h
Encapsulation: Object can have private member. Header limit what can usually be used by other member, but it's not enforced