Wert dauerhaft speichernde Struct
-
Hallo,
Wieso endet folgendes in einem Compile-Error?
#include <iostream> struct saver { template<typename T> void operator(const T& rhs, T& lhs) { static T mySaver; mySaver = rhs; lhs = mySaver; } }; int main() { saver s; int v1 = 40; int v2 = 0; s(v1, v2); std::cout << v2 << std::endl; }Ich weiß selber, dass ich auch v2 = v1 schreiben kann, aber ich will einfach wissen, warum es so wie oben nicht geht.
Niels
-
Es funktioniert nicht, weil du vergessen hast hinter das Schlüsselwort operator auch den zu überladenen Operator anzugeben ... so sieht die Zeile richtig aus:
void operator()(const T& rhs, T& lhs) {
-
tolle überschrift.