У меня есть шаблонный метод с двумя специализированными версиями для типа bool
и vector<string>
.
Базовая версия:
template <class T>
const T InternGetValue(const std::string& pfad) const
{
...
}
Специализированные версии:
template <>
const bool InternGetValue(const std::string& pfad) const
{
...
}
template <>
const std::vector<std::string> InternGetValue< std::vector<std::string>>(const std::string& pfad) const
{
...
}
Теперь я хотел бы реализовать специализацию one , которая будет принимать все типы vector<aritmethic_data_type>
, такие как vector<double>
vector<int>
или vector<float>
.
Я мог бы добиться этого, написав перегрузки для указанных выше типов, но я заинтересован в достижении моей цели с помощью другой специализации.
Это то, что я пробовал до сих пор (приводит к ошибке «незаконно»использование явных аргументов шаблона '):
template <class T>
const std::vector<T> InternGetValue< std::vector<T>>(const std::string& pfad, typename boost::enable_if<boost::is_arithmetic<T>>::type* dummy = 0) const
{
}