Неохотно я не мог найти сообщение о моей следующей проблеме. Я хочу написать класс litte, который перегружает < < -Operator, чтобы получить переменные типы данных с использованием шаблонов. .h-файл моего класса выглядит следующим образом:C++: Overload << Оператор с шаблонами
class MyClass {
private:
...
public:
template <typename> void operator<<(T data);
};
CPP-файл:
template <typename T> void MyClass::operator<<(T data) {
...
return;
}
Теперь я хочу использовать свой класс:
MyClass mc;
mc << "Test";
mc << 123;
Но мой компилятор GCC не будет скомпилировать его, что даст мне следующее сообщение об ошибке:
undefined reference to `void MyClass::operator<< <char const*>(char const*)'
или, если я использую int, например:
undefined reference to `void MyClass::operator<< <int>(int)'
Что я делаю неправильно ??? Кто-нибудь может мне помочь?
http://www.parashift.com/c++-faq-lite/templates-defn-vs-decl.html – yuyoyuppe
Где вы задаете T в вашем коде? – Jepessen
Закрытие вопроса как дубликата, а затем не предоставление ссылки на дубликат, не полезно. – JBentley