Verwenden der Laufzeitbedingung, um Vorlagenparameter in C ++ auszuwählenC++

Programme in C++. Entwicklerforum
Anonymous
 Verwenden der Laufzeitbedingung, um Vorlagenparameter in C ++ auszuwählen

Post by Anonymous »

Ich habe also eine Vorlagenklasse < /p>

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
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

Code: Select all

union
scheint nicht sicher zu type.
[*]

Code: Select all

std::any
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post