[EDIT] Ich schreibe eine Template-Klasse mit dem Typ Argument T
. In einem der Funktionsmitglieder dieser Klasse wird erwartet, dass eine Variable vom Typ T
in ein std::ofstream
-Objekt geschrieben wird. Alles ist in Ordnung, bis ich diese Klasse mit einem benutzerdefinierten Typ Argument Fraction
instanziieren. Der Fehler tritt auf, obwohl ich die operator <<
überlastet habe.Binärer 'Operator': kein Operator gefunden, der einen rechten Operanden vom Typ 'Fraction' benötigt (oder es gibt keine akzeptable Konvertierung)
// collection.h
#include <fstream>
template<typename T>
class Collection
{
public:
void writeToFile();
private:
T val;
};
template<typename T>
inline void Collection<T>::writeToFile()
{
std::ofstream file("output.txt");
file << val;
}
// Fraction.cpp
#include <iostream>
std::ostream& operator << (std::ostream& str, const Fraction& f)
{
std::cout << "Hello";
return str;
}
Bitte ** [edit] ** Ihre Frage mit [mcve] oder [SSCCE (kurz, eigenständig, korrektes Beispiel)] (http://sscce.org) – NathanOliver