У меня есть шаблонный классC++ Design Вопрос о типах шаблонов
template <typename T>
class MyContainerClass
Для типов, чтобы быть заменен на Т, он должен удовлетворять многие требования: например, get_id(), внутр данные(), и т.д.
Очевидно, что ни один из основных типов (POD) не подлежит замене. В одном из способов я могу предоставить это через обертки для POD, которые предоставляют эти функции. Это приемлемый способ ?
Другой способ изменить шаблон:
template < typename T, typename C=traits<T> >
class MyContainerClass
и внутри MyContainerClass, вызовите черты :: данные() вместо данных() на объектах Т. Специализируется traits<int>, traits<const char *>
и т.д.
Это хороший дизайн? Как создать такой класс признаков (полностью статические методы или разрешить для наследования)? Или класс-оболочка - хорошее решение?
Какие еще альтернативы?