Fundamentals of Generic Programming
James C. Dehnert7
and Alexander Stepanov7 
| (7) |
Silicon Graphics, Inc., USA |
Abstract
Generic programming depends on the decomposition of programs into components which may be developed separately and combined
arbitrarily, subject only to well-defined interfaces. Among the interfaces of interest, indeed the most pervasively and unconsciously
used, are the fundamental operators common to all C++ built-in types, as extended to user-defined types; e.g., copy constructors,
assignment, and equality. We investigate the relations which must hold among these operators to preserve consistency with
their semantics for the built-in types and with the expectations of programmers. We can produce an axiomatization of these
operators which yields the required consistency with built-in types, matches the intuitive expectations of programmers, and
also reflects our underlying mathematical expectations.
Keywords Generic programming - operator semantics - concept - regular type
References secured to subscribers.