Как задать синоним имени метода?
Есть класс, там определён шаблонный метод, как можно задать несколько синонимов этого метода с различными параметрами шаблона?
class CodeContainer {
public:
template <class T>
Code* AddCode(const std::string name, int code);
Code* AddCodeInteger(const std::string name, int code) {
return AddCode<int>(name, code);
}
Code* AddCodeFloat(const std::string name, int code) {
return AddCode<double>(name, code);
}
Code* AddCodeString(const std::string name, int code) {
return AddCode<std::string>(name, code);
}
Code* AddCodeBoolean(const std::string name, int code) {
return AddCode<bool>(name, code);
}
};
Ответы (1 шт):
Автор решения: ComeInRage
→ Ссылка
Не совсем понятна задача, в вашем коде шаблонный параметр нигде не используется. Если вы имеете ввиду специализацию шаблонов, то можно сделать так:
template <typename T, int size>
void print(StaticArray<T, size> &array)
{
for (int count = 0; count < size; ++count)
std::cout << array[count] << ' ';
}
template <> // Специализация шаблона
void print(StaticArray<char, 14> &array)
{
for (int count = 0; count < 14; ++count)
std::cout << array[count];
}
template <int size> // Частичная специализация шаблона
void print(StaticArray<char, size> &array)
{
for (int count = 0; count < size; ++count)
std::cout << array[count];
}