Verwenden der Laufzeitbedingung, um Vorlagenparameter in C ++ auszuwählen
Posted: 01 Feb 2025, 08:37
Ich habe also eine Vorlagenklasse < /p>
funktioniert nicht, da der Operator keine Standardkonstruktor hat. (bearbeiten: Mein schlechtes, folge einfach der akzeptierten Antwort im Beitrag, den ich verlinkt habe)
[*] Polymorphismus funktioniert nicht, weil der Operator scheint nicht sicher zu type.
[*] Benötigt einen komplizierten Typ, wenn ich ihn richtig erhalte.
[/list]
Gibt es eine einfachere und elegantere Lösung dafür? Wenn nicht, muss ich diese Klasse nur neu gestalten?
Code: Select all
template
class Operator {
public:
Operator(const State& state);
// ...
}
< /code>
Und ich möchte es mit verschiedenen Vorlagenparametern initialisieren: < /p>
bool condition = foo(); // runtime condition
Operator op(state); // not possible because condition is not constexpr
< /code>
Ich habe diesen Thread gefunden, aber ich habe immer noch ein paar Probleme: < /p>
[list]
[*]std::variant
[*] Polymorphismus funktioniert nicht, weil der Operator
Code: Select all
union
[*]
Code: Select all
std::any
[/list]
Gibt es eine einfachere und elegantere Lösung dafür? Wenn nicht, muss ich diese Klasse nur neu gestalten?