Changeset 54760


Ignore:
Timestamp:
Jul 7, 2009, 5:19:21 AM (9 years ago)
Author:
Douglas Gregor
Message:

Model -> data type

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/committee/LWG/proposals/taxonomy-of-concepts-and-maps.rst

    r54759 r54760  
    1411412. They are often so simple that the syntactic weight of an
    142142   explicitly-written ``concept_map`` is a significant fraction of the
    143    weight of the model declaration itself::
     143   weight of the user's data type itself::
    144144
    145145      struct case_insensitive // 67 non-whitespace characters
     
    152152
    153153   [This relative weight is mitigated somewhat by the need to actually
    154    *implement* the model, and, if accepted, by the intentional mapping
     154   *implement* the data type, and, if accepted, by the intentional mapping
    155155   syntax proposed in N2916]
    156156
    1571573. Because foundational concepts have a widely agreed-upon syntax and
    158    semantics, there's a very good chance that there are already models
     158   semantics, there's a very good chance that there are already matching
     159   user data types
    159160   “out there in the wild,” likely designed with the abstract concept,
    160161   in mind, but without specific knowledge of the C++ ``concept``.
     
    268269foundational ones.  Nontrivial concepts are not easy to model
    269270correctly, so the diagnostics produced by a ``concept_map`` can be
    270 highly valuable to the author of the model.  Declaring a new model is a
     271highly valuable to the author of the data type.  Declaring a new matching
     272data type is a
    271273significant job that tends to make the effort required to write a
    272274``concept_map`` “disappear in the noise.” Finally, because they are
    273 not simple, there is little chance of finding pre-existing models of
     275not simple, there is little chance of finding pre-existing data types that
     276meet the requirements of
    274277newly-defined nontrivial concepts “in the wild.”
    275278
     
    297300when the type is passed where ``EqualityComparable`` is required.  In
    298301the case of the non-``auto`` concept ``BidirectionalIterator``, an
    299 intentional map must be written by the author of the model.  We call
     302intentional map must be written by the author of the data type.  We call
    300303both maps “intentional” because they are intended by the author of the
    301 model.
     304data type.
    302305
    303306Intentional ``concept_maps``\ s are traditionally empty, since a
     
    349352
    350353* It makes explicit and visible the relationship between the
    351   properties of the model's template arguments and of the model itself
     354  properties of the data type's template arguments and of the data type itself
    352355  (even if the concept is ``auto``).  For example, a ``pair<T,U>`` is
    353356  ``CopyConstructible`` if both ``T`` and ``U`` are
Note: See TracChangeset for help on using the changeset viewer.