[C++] Operator wird verdeckt
Verfasst: 10.04.2012, 23:28
Ich habe den operator<< für eine Matrixklasse überladen. Jetzt habe ich eine Menge Code in meinem Namespace Mrl, der operator<< ist aber im globalen Namespace (sagt man so, oder?). Im Namespace Mrl sind zusätzlich 3 weitere operator<< Überladungen, für andere Klassen. Der cout Aufruf ist auch im Namespace Mrl.
Jetzt möchte ich cout mit meinem Operator benutzen, aber er wird nicht gefunden. Ich habe 2 Mögliche Lösungen gefunden, einmal meinen neuen Operator auch in den Namespace Mrl packen, oder aber der Operator explizit Aufrufen (::operator<< (cout, m_BoneTransforms);).
Etwas Code:
Ich habe keine Ahnung, ob die Operatoren im Namespace Mrl wirklich daran schuld sind, aber ich wüsste jetzt auch nicht, was sonst das Problem ist.
Jetzt möchte ich cout mit meinem Operator benutzen, aber er wird nicht gefunden. Ich habe 2 Mögliche Lösungen gefunden, einmal meinen neuen Operator auch in den Namespace Mrl packen, oder aber der Operator explizit Aufrufen (::operator<< (cout, m_BoneTransforms);).
Etwas Code:
Code: Alles auswählen
//Mein neuer Operator:
template<typename T> std::ostream &
operator << (std::ostream & Stream, const glm::detail::tmat4x4<T> & Mat)
//ein Operator in Mrl, Filename ist eine eigene Klasse, die anderen sehen ähnlich aus
inline std::ostream& operator<<(std::ostream &Stream, const Filename& file)
cout << m_BoneTransforms[i] << endl; //geht nicht
::operator<< (cout, m_BoneTransforms[i]); //geht