Передовая практика для шаблонных классов и обработки нежелательных объявлений типов - PullRequest
1 голос
/ 21 марта 2012

Что считается «хорошей практикой» при обработке нежелательных типов данных для шаблонных классов?

Скажем, у нас есть шаблонный класс, который выполняет умножение чисел, но файл драйвера для класса объявляет экземпляркласса с типом string.

Мне дали аргумент, что это «личная проблема» для любого, кто создает файл драйвера, и что все, что нужно сделать с вашей стороны, является правильнымПролог функции в заголовочных файлах / файлах реализации.

Мне интересно, существует ли общая практика, используемая с шаблонами для решения этой проблемы.Проверяете ли вы свои типы в классе перед обработкой (я полагаю, в некоторой степени это противоречит цели шаблона), или вы определяете поведение для определенных типов (хотя это также кажется поражением цели)?

Или вы просто правильно документируете свой код и позволяете программисту, использующему ваш класс, принять меры предосторожности?

1 Ответ

2 голосов
/ 21 марта 2012

Я бы обычно использовал что-то вроде Boost / C ++ 11 static_assert, чтобы утверждать нужные свойства. Это не только позволит вам убедиться, что оно числовое, но имеет такие вещи, как is_signed и is_integer дляУточните подробнее о типе, если вам нужно / хотите.

...