Рекомендации по проектированию характеристик типов для набора связанных типовC++

Программы на C++. Форум разработчиков
Anonymous
Рекомендации по проектированию характеристик типов для набора связанных типов

Сообщение Anonymous »

Стандартная библиотека C++ предоставляет std::char_traits для унификации обработки символьных данных независимо от конкретного используемого типа символов.
Она также предоставляет type_traits> для более общего метапрограммирования.
Эти два типа систем признаков имеют разный дизайн: std::char_traits — это шаблон класса ( с несколькими специализациями), который имеет несколько статических методов. предоставляет автономные шаблоны вместо статических методов.
Почему в этих двух системах используются разные подходы?
Я' Я не ищу мнений. Я надеюсь выявить ограничения, которые следует учитывать при разработке системы признаков.
  • Есть ли что-то, что вы можете сделать с помощью одного подхода, чего вы не можете сделать с помощью другого подхода? другое?
  • Эволюционировал ли язык, чтобы лучше соответствовать тому или иному подходу? ( был стандартизирован в C++11; std::char_traits старше)
  • Отражают ли разные подходы различия в проблемных областях? (общее метапрограммирование против унифицированной обработки для определенного конечного набора типов)
В настоящее время я разрабатываю вторую версию набора признаков для конкретной области. Выбирая между шаблоном класса со статическими методами или набором автономных шаблонов, я понял, что не знаю, какие факторы следует учитывать.

ETA: Конкретное различие между проблемными пространствами, которое может быть упомянуто в моем третьем доказательстве выше, заключается в том, что std::char_traits в основном предоставляет методы работы с данными, но < /code> в основном предназначены для работы с типами.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ated-types

Вернуться в «C++»