#c #templates
#c #шаблоны
Вопрос:
Посмотрите на этот код:
template<class T, class Compare>
void foo(const std::set<T, Compare> amp; bar)
{
// here I need the comparative function BUT with another type
// like this:
if (Compare<float>()(...))
}
Что-то вроде этого, но это не работает:
template<class T, class Compare>
void foo(const std::set<T, Compare<T>> amp; bar)
...
Возможно ли это?
Ответ №1:
Вам нужен параметр шаблона шаблона:
template<class T, template<class> class Compare>
Теперь Compare
параметр шаблона является самим шаблоном.