000
09.11.2004, 10:54 Uhr
virtual
Sexiest Bit alive (Operator)
|
Hallo,
also folgende Nonsense Template ist gegeben:
C++: |
template<typename T> class integer { T i; public: integer(T i_) :i(i_) { }
friend integer<T> operator + <>(const integer<T>&, const integer<T>&); };
template<typename T> integer<T> operator + (const integer<T>& a, const integer<T>& b) { return integer<T>(a.i+b.i); }
int main() { integer<long> a(100);
a = ::operator +<long>(4, a); // Geht a = 4 + a; // Geht nicht! }
|
Wäre integer kein template, sondern eine normale Klasse, so würde dieser Code funktionieren. Mir will einfach kein Weg einfallen, wie man den op+ bei einem Template so definieren kann, daß es tickt. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |