Type

The notion of type is a very abstract one. Some notion of type is present in most object-oriented languages, and paradigms (e.g. design methodologies, frameworks, etc.). One often attempts to define it in a common, "abstract", "language-independent" (or language neutral) way.
I claim that any such attempt is doomed.

To support this strong claim, I will try to show what is a type in C++, what must be a type for the notion to be useful.

Other related ideas:

C++ types attempt to be upward compatible with C types (aka built-in types).

Typing is used as a mean to express semantics in a form which can be processed (and thus supported) by a tool (in C++: the compiler). I.e. typing competes with other such means: Eiffel assertions, Ada tasks, various formal techniques (annotation, decoration, etc.). C++ attempts to allow the design to make them as strong as possible (expressivity), to keep them static (modularity), and to avoid duplication of information.


Table of contents, Static
Marc Girod
Last modified: Sat Feb 28 14:30:14 EET 1998