Черта в C ++ инкапсулирует семейство операций, которые позволяют алгоритму или структуре данных работать с тем типом, с которым он создается. char_traits
- это пример группировки string
- и файловых функций.
Но не все черты имеют "черту" в названии, верно? numeric_limits
приходит на ум. Это тоже «Черта»? Даже без названия «черта» в этом?
Итак, есть ли другие шаблоны, которые можно / нужно считать «чертой»? Помимо найденных мной примеров:
allocator_traits
как получить память
pointer_traits
как получить косвенный доступ к объекту
type_traits
метапрограммирование
char_taits
для последовательности символов
iterator_traits
как пройти вперед, назад и на стихию
regex_traits
для ... регулярных выражений.
Полагаю, что я спрашиваю, есть ли чистое определение для черт?
Некоторые вещи, в которых я особенно не уверен:
numeric_limits
упомянуто выше
<chrono>
s настройки "черты", [20.11.4], т.е. duration_values
- как насчет хеширования? Можно ли считать функтор
hash<>
признаком?
- Если это так, не являются ли все требования "чертами", такими как "CopyAssignable" и т. Д.?
- И затем, являются ли заброшенные «Концепции» конечной «чертой» -определения?
Обновление: Вопрос, что именно делает черту чертой, кажется немного противоречивым в деталях. Возможно, можно ответить на другой вопрос: Существует ли исчерпывающий список, какие из классов, подобных чертам, являются новыми для C ++ 0x, а какие уже были в C ++ 03? Может быть, кто-то знает о ссылка куда-то?