On Thu, 10 Jun 2021 at 09:34, Jakub Jelinek wrote: > Also, the paper doesn't contain the exact __cpp_if_consteval value,
Right, proposals aren't supposed to, because the value gets set when the proposal is voted into the working draft (which the proposal author doesn't control). > but https://github.com/cplusplus/draft/pull/4660/files mentions 202106L > which this patch uses. That's the right value. > And I'm not changing the libstdc++ side, where perhaps we could change > std::is_constant_evaluated definition for > #ifdef __cpp_if_consteval > case to if consteval { return true; } else { return false; } > but we need to keep it defined to __builtin_is_constant_evaluated () > for C++20 or older. Is there any advantage to changing that (cheaper for GCC to evaluate?) or should we just continue to use the __builtin unconditionally? I suppose it's theoretically possible that there could be a non-GCC compiler where defined(__cpp_if_consteval) is true but __has_builtin(__builtin_is_constant_evaluated) is false.