Специализация C ++ функции шаблона внутри класса шаблона

Обычно все переменные запустятся с нижнего регистра:

int count = 32;
double conversionFactor = 1.5d;

Некоторым людям нравится помещать статические константы в весь случай:

public static final double KILOGRAM_TO_POUND = 2.20462262;

Вещи становятся более раздражающими, когда Вы имеете дело с акронимами, и нет никакого реального стандарта на том, необходимо ли использовать:

HTMLHandler myHtmlHandler; 

или

HTMLHandler myHTMLHandler.

Теперь, так или иначе, отмечают, что имена классов (Объект, Строка, HTMLHandler) всегда запускаются с прописной буквы, но переменные отдельного объекта запускают нижний регистр.

29
задан Ogre Psalm33 14 February 2011 в 16:49
поделиться

2 ответа

AFAIK (и эксперты по стандартам могут меня поправить), вы не можете специализировать шаблонную функцию шаблона класса, не специализируя сам класс ...

то есть. следующие, я думаю, будут работать:

template <> template <> int X<Y>::getAThing<int>(std::string param) {
   return getIntThing(param); // Some function that crunches on param and returns an int.
}
18
ответ дан 28 November 2019 в 02:01
поделиться

Вот самый простой и легкий способ, который я когда-либо видел, чтобы сделать это:

template <class T1>
struct MyClass {
  template <class T2>
  void MyFunction();
};

template <class T1>
template <class T2>
void MyClass<T1>::MyFunction() {  // NOTE:  NO T2 on this line.
  // Code goes here
}
-2
ответ дан 28 November 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: