operator als argument



  • peter k schrieb:

    glaub ich nicht

    Tja wie soll man dir das denn jetzt glaubhaft machen? 🙂



  • ick weiss, aber dachte das wäre unsauber..

    würde gern' mal 'n spezi dazu hören..



  • würde gern' mal 'n spezi dazu hören..

    Ich _bin_ es.



  • @the ugly what the fuck deine Funktion gibt nix zurück, obwohl da als Rückgabetyp double steht^^



  • ganz so einfach wie in lisp geht's in c++ nicht!

    #include <iostream>
    #include <functional>
    using namespace std;
    
    template<typename T>
    double rechnen(T operation, double a, double b)
    {
    	return operation(a,b);
    }
    
    int main()
    {
    	cout << rechnen(plus<double>(), 3, 5) << endl;
    	cout << rechnen(minus<double>(), 3, 5) << endl;
    	cout << rechnen(multiplies<double>(), 3, 5) << endl;
    	cout << rechnen(divides<double>(), 3, 5) << endl;
    
    	cin.get();
    }
    


  • Pellaeon schrieb:

    @the ugly what the fuck deine Funktion gibt nix zurück, obwohl da als Rückgabetyp double steht^^

    das sehe ich anders 🤡 👍



  • schorsch code schrieb:

    ganz so einfach wie in lisp geht's in c++ nicht!

    #include <iostream>
    #include <functional>
    using namespace std;
    
    template<typename T>
    double rechnen(T operation, double a, double b)
    {
    	return operation(a,b);
    }
    
    int main()
    {
    	cout << rechnen(plus<double>(), 3, 5) << endl;
    	cout << rechnen(minus<double>(), 3, 5) << endl;
    	cout << rechnen(multiplies<double>(), 3, 5) << endl;
    	cout << rechnen(divides<double>(), 3, 5) << endl;
    
    	cin.get();
    }
    

    gut gemacht schosch 👍 👍 👍 👍 👍 👍 👍



  • bah mist, das is meine Bindehautentzündung, vorrübergehende Blindheit bei mir^^ 🤡



  • wenn man switch meiden will, und switch will man meistens meiden, dann meidet man switch, indem man funktionszeiger oder funktionsopjekte übergibt, wobei man funktionszeiger auch meiden könnte, weil man sie meistens meidet, wobei das gemiedene switch es sich erlaubt, anzudeuten, daß es sich um eine laufzeitgeschichte dreht, und die funktionsobjekte sollten von einer gemeinsamen basisklasse erben tun.



  • volkard schrieb:

    wenn man switch meiden will, und switch will man meistens meiden, dann meidet man switch, indem man funktionszeiger oder funktionsopjekte übergibt, wobei man funktionszeiger auch meiden könnte, weil man sie meistens meidet, wobei das gemiedene switch es sich erlaubt, anzudeuten, daß es sich um eine laufzeitgeschichte dreht, und die funktionsobjekte sollten von einer gemeinsamen basisklasse erben tun.

    Gut Deutsch 👍



  • Mit Makros geht es.

    #define MyOp(op, a, b)\
      ((a) op (b))
    

    Sollte man aber mit großer Vorsicht genießen. Vielleicht erklärst du mal was du eigentlich bezwecks.


Anmelden zum Antworten