Мне нужно написать шаблонную функцию, которая ведет себя по-разному в зависимости от класса ее параметра:
template<class ContainerType>
bool myFunc(ContainerType in){
//do some stuff
}
template<class NotAContainerType>
bool myFunc(NotAContainerType in){
//do something else
}
Я ограничен С++ 11, поэтому static_if
исключен. Кроме того, классы ContainerType
и NotAContainerType
действительно велики и могут измениться в будущем, поэтому простое добавление нескольких исключений вручную в качестве специализации шаблона также нецелесообразно.
Я знаю обходной путь std::enable_if
, но как мне его использовать, если мне нужно применить его к двум взаимно различным наборам классов?
std::enable_if
это именно то, что вы ищете, так что просто определите, как вы отличаете тип контейнера от других. - person scrutari   schedule 25.07.2018