Ich habe eine Vorlage, um mehrere Sensoren zu verarbeiten. Einer sendet mir eine Höheneigenschaft, die anderen nicht. Ich brauche diesen Wert einmal in meinem Code, der Rest der Visualize()
Funktion ist für jeden Sensor gleich. Also ich wollte überprüfen, ob T is_same
mit FrontCameraSegment und dann wollte ich die segment.height -Eigenschaft einmal verwenden. Der Compiler sagt jedoch, dass "height"
kein Mitglied aller Elemente ist, die an T
übergeben werden, was logisch ist. Casts funktionieren nicht aus dem gleichen Grund. Die Umstrukturierung der Sensoren mittels Vererbung ist nicht möglich (ich darf diesen Teil nicht machen).C++ setze Wert, wenn Element existiert
Also meine Frage: Wie kann ich dem Compiler sagen, dass ich überprüft habe, dass height
ein Mitglied ist?
Mögliches Duplikat von ["constexpr if" vs. ] (https://stackoverflow.com/questions/40972666/constexpr-if-vs-if-with-optimizations-why-is-constexpr-needed) – LogicStuff
Sie müssen Spezialisierungen für Ihre Vorlage basierend auf dem Ergebnis von 'std bereitstellen :: is_same :: value' –
user0042
@LogicStuff Danke, dass Sie auf die richtige Antwort zeigen. Aber ich stimme nicht zu, dass dies ein Duplikat ist. Duplizieren bedeutet doppelte Frage, in diesem Fall ist es nur die gleiche Antwort auf zwei verschiedene Fragen. Bitte beachten Sie auch https://meta.stackoverflow.com/a/266246/1023911 und https://meta.stackoverflow.com/q/292329/1023911. –