im Moment bin ich wirklich interessiert an Expression-Templates und möchte eine Bibliothek zum Schreiben und Differenzieren mathematischer Funktionen mit einer Lambda-Stil-Syntax zu kodieren. Im Moment kann ich (_x * _x)(2);
schreiben und das richtige Ergebnis 4 bekommen. Aber ich würde gerne etwas wie MathFunction f = _x * _x; f(2);
machen, aber ich habe keine Ideen, wie ich mit den rekursiven Ausdruckvorlagen auf der rechten Seite umgehen soll . Ist es möglich, dies zu erreichen, ohne das 'auto'-Schlüsselwort anstelle von MathFunction zu verwenden oder den Operator() virtuell zu machen?Expression-Template-Funktoren speichern
Danke für Ihre Hilfe!
Danke für diese Antwort und die Links! Ich habe die Boost.Lambda-Dokumentation bereits gescannt, um eine Lösung für mein Problem zu finden, aber ich habe keine Zeile gefunden, in der diese Lambda-Funktionen tatsächlich "gespeichert" sind, sie werden immer inline verwendet. Im Moment verwende ich den Ansatz "C++ - Vorlagen - Der eindeutige Leitfaden" für Expression-Vorlagen. – fhenneke
Uncaught Ausnahme, ich schlug vor, dass Sie den Quellcode betrachten. Hast du schon gesucht? – batbrat