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.


Anmelden zum Antworten