I have following code
static constexpr bool condition = true; int square(int num) { if constexpr (condition) { return num * num; } else { x return num; } } int main() { return square(3); } compiled with
-std=gnu++17
My assumption for
if constexpr (condition) was that during compilation the part
} else { x return num; } get discarded and I get no error about the undefined
x
Is my understanding wrong that this 'if constexpr' is something like
#ifdef CONDITION return num * num; #else x return num; #endif How do I modify this code that I can compile this?