Wie kann ich die perfekte Weiterleitung durch eine virtuelle Funktion ermöglichen? Ich habe wirklich keine Lust, jede Überladung wie in C++ 03 zu schreiben.Perfect Forwarding - durch virtuelle Funktionen
5
A
Antwort
3
Sie können nicht. Perfect Forwarding funktioniert nur durch die Kombination von Templates und Rvalue-Referenzen, denn es hängt davon ab, welche Art von realem Typ T&&
auswertet, wenn T spezialisiert ist. Sie können Vorlagen und virtuelle Funktionen nicht mischen.
Sie können jedoch möglicherweise in der Lage, Ihr Problem durch eine Art von Typ-Löschmechanismus zu lösen:
struct base {
virtual void invoke() = 0;
};
template <class T>
struct derived : public base {
derived(T&& yourval) : m_value(std::forward(yourval)) {}
virtual void invoke() { /* operate on m_value.. */ }
T&& m_value;
};
Verwandte Themen
- 1. Perfect Forwarding zu Async Lambda
- 2. Reflexion Perfect Forwarding und das Besuchermuster
- 3. Perfect Forwarding schlägt fehl, wenn Ziel mit Array-Aggregat ist
- 4. C++: Private virtuelle Funktionen vs. rein virtuelle Funktionen
- 5. Virtuelle Funktionen Objekt Slicing
- 6. Kann virtuelle Funktionen inlined
- 7. Perfect-Spedition aufrufbare Objekte in Funktionen höherer Ordnung
- 8. Virtuelle Funktionen überschreiben und versteckt
- 9. Befehlsmuster ohne virtuelle Funktionen (C++)
- 10. Async programmic und virtuelle Funktionen
- 11. Können virtuelle Funktionen constexpr sein?
- 12. Typ-Forwarding
- 13. C++ überladene virtuelle Funktionswarnung durch Klingeln?
- 14. Können virtuelle Funktionen in Rückgabewerten verwendet werden?
- 15. Sind virtuelle Inline-Funktionen wirklich ein Unsinn?
- 16. Anfänger C++: virtuelle Funktionen in einer Basisklasse
- 17. Mimic Python (rein) virtuelle Funktionen wie C#
- 18. Warum virtuelle Funktionen Zugangsbezeichner trotzen? C++
- 19. Anpassung Hooks: virtuelle Funktionen oder Ereignisse?
- 20. Virtuelle Funktionen mit Basis-und abgeleiteten Objekten
- 21. C++ Polymorphismus und nicht virtuelle Funktionen
- 22. Wie implementiert man virtuelle Funktionen in Golang?
- 23. Forwarding Argumente Template-Memberfunktion
- 24. Perfect Balanced Binary Search Tree
- 25. Perfect Center auf WPF Canvas
- 26. Warum verhält sich die virtuelle Zuweisung anders als andere virtuelle Funktionen derselben Signatur?
- 27. Alternate durch Lambda-Funktionen
- 28. Selektive Forwarding-Funktion
- 29. Docker Port Forwarding
- 30. Forwarding Initialisiererliste Ausdrücke