ich eine Template-Klasse wie diese außerhalb der KlasseBetreiber Überlastung außerhalb einer Template-Klasse mit impliziten Konvertierungen
template<class T> class Wrap
{
/* ... */
public:
Wrap(const T&);
/* other implicit conversions */
/* ... */
};
Ich möchte für diese Klasse die Vergleichsoperatoren alle definieren, wie diese
template<typename T> bool operator == (const Wrap<T>&, const Wrap<T>&)
{
// Do comparison here
}
definiert haben Diese Deklaration unterstützt jedoch keine impliziten Konvertierungen von const T&
oder einem anderen Typ zu const Wrap<T>&
.
Also meine Frage ist, wie kann ich es unterstützen implizite Konvertierungen, wenn einer der Operanden vom Typ Wrap<T>
ist und der andere nicht. Ich möchte nicht mehrere Deklarationen jedes Operators für jede mögliche Permutation schreiben.
Große Antwort. Ich nehme an, dass Sie die Referenz für "tc2" nicht gefunden haben. – user1353535