https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79452
--- Comment #2 from gnzlbg <gonzalobg88 at gmail dot com> --- > It's already in C++17 and supported by GCC. The following program is ill-formed in C++17: int main() { if constexpr() { // Error: expression missing in if condition return 1; } return 0; } > That sounds like a recipe for ODR violations. Could you elaborate on why? Since the `constexpr_alias` will only be called during compile-time evaluation, it will never collide with the "run-time" alias (which is inline, since constexpr implies inline). Note that `foo_constexpr` is a completely different function than `foo`, so these two never collide either.