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 |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access