Я хочу создать класс, который принимает только определенные типы классов шаблонов. Я знаю, что существует специализация шаблонов, но я хочу, чтобы мой класс принимал все шаблоны, реализующие определенную функцию, поиск.
Скажем, у меня есть class A
следующим образом:
template<class T> //add a restriction that T implements bool search(T)
class A
{
T t;
//do something that uses T.search(T x)
if(t.search(x))
//Do something
};
В общем, я хочу создать общий класс, который работает для всех классов, имеющих функцию поиска. Есть ли способ сделать это?
T.search(x)
? Не должно бытьT::search(x)
или что-то вродеT().search(x)
? Кстати, ваш шаблон класса будет генерировать неправильно сформированный код, когда вы создадите его с помощьюT
не имеет функции-членаsearch
. Это тоже своего рода ограничение. - person Francis   schedule 25.01.2018