Models in Generic Programming
A type models a Concept if it meets the requirements of the Concept. For example, type int
models the Sortable Concept in Table 12-1 if there exists a function swap(x,y)
that swaps two int
values x
and y
. The other requirement for Sortable, specifically x<y
, is already met by the built-in operator<
on type int
.
The library sometimes requires that a type model the CopyConstructible
Concept, which is defined by the ISO C++ standard and provides fundamental operations for creating and referring to the type. Table 12-2 shows the requirements for CopyConstructible
in pseudosignature form. For a type to model the CopyConstrutible
Concept, it needs to implement each operation specified in Table 12-2. This way, containers and algorithms that expect CopyConstructible
types will be able to use your types, too.
Table 12-2. CopyConstructible requirements
Pseudosignature |
Semantics |
---|---|
|
Construct copy of |
|
Destructor. |
|
Take address of |
|
Take address of |
Get Intel Threading Building Blocks now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.