#ifdef-Äquivalent für constexpr-Variablen?C++

Programme in C++. Entwicklerforum
Anonymous
 #ifdef-Äquivalent für constexpr-Variablen?

Post by Anonymous »

Ich suche Rat.
System: Ubuntu 20.04, g++ 9.4.0 (c++17)
Traditionell verwenden wir in C #define zusammen mit #ifdef, zum Beispiel:

Code: Select all

#define FOO true

#ifdef FOO
//Do something
#else
//Do something else
#endif
Nun, in der C++-Welt scheint es, dass constexpr #define vorgezogen wird, deshalb versuche ich, mehr C++ zu sein.
Nach ein wenig Recherche wollen wir sagen, wir wollten den obigen Code im C-Stil replizieren. Anstelle von #define hätten wir so etwas:

Code: Select all

constexpr bool FOO{true};
Aber wie führen wir dann #ifdef aus?
Es gibt Vorschläge, dass Folgendes zum Überprüfen einer constexpr-Variable verwendet werden kann:

Code: Select all

if constexpr (FOO == true) {
//Do something
}
else {
//Do something else
}
Soweit ich sehen kann, kann dies nicht außerhalb einer Funktion ausgeführt werden und kann daher nicht vom Präprozessor verwendet werden.
Gibt es eine Möglichkeit, die Präprozessordirektiven #ifdef..#endif zu replizieren, während der Spezifizierer constexpr verwendet wird?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post