Обычно все переменные запустятся с нижнего регистра:
int count = 32;
double conversionFactor = 1.5d;
Некоторым людям нравится помещать статические константы в весь случай:
public static final double KILOGRAM_TO_POUND = 2.20462262;
Вещи становятся более раздражающими, когда Вы имеете дело с акронимами, и нет никакого реального стандарта на том, необходимо ли использовать:
HTMLHandler myHtmlHandler;
или
HTMLHandler myHTMLHandler.
Теперь, так или иначе, отмечают, что имена классов (Объект, Строка, HTMLHandler) всегда запускаются с прописной буквы, но переменные отдельного объекта запускают нижний регистр.
AFAIK (и эксперты по стандартам могут меня поправить), вы не можете специализировать шаблонную функцию шаблона класса, не специализируя сам класс ...
то есть. следующие, я думаю, будут работать:
template <> template <> int X<Y>::getAThing<int>(std::string param) {
return getIntThing(param); // Some function that crunches on param and returns an int.
}
Вот самый простой и легкий способ, который я когда-либо видел, чтобы сделать это:
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
}