Как я могу указать, что требуется для допустимого аргумента шаблона? То, что я имею в виду, давайте, например, взять что-то вроде этого:Задание аргумента шаблона
template<class T>
void f(const T& obj)
{
//do something with obj
}
, но я хотел бы T быть только целочисленный типа, поэтому я принял бы полукокс, INT, короткие беззнаковые и т.д., но ничего больше. Есть (я уверен, что есть) способ обнаружить его, что предоставляется в качестве шаблона arg?
Спасибо.
A-ha хочет отключить/включить создание шаблона на основе признаков типа. Boost Concept Check Library предназначена для расшифровки сообщений об ошибках компилятора, связанных с шаблоном. Он не делает то, что хочет А-ха. Он хочет отключить экземпляр шаблона для определенных типов, даже если он поддерживает все необходимые понятия. Например, double может поддерживать все, что он делает в теле функции, но он не хочет, чтобы шаблон использовался с двойным типом. Концепция проверки не является подходящим решением. enable_if и type_traits - путь. – user401947
От своего вопроса: - «что требуется, чтобы быть допустимым аргументом шаблона». - «Я бы принял char, int, short unsigned и т. Д., Но ничего больше». (И кстати, мой ответ принят ;-)) – Scharron