https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102916
--- Comment #12 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Darrell Wright from comment #2) > The constexpr value returned is different depending on the compiler. If one > uses clang and gcc this leads to an ODR issue as > > void bar( ) { > if constexpr( foo<[]{ return std::sqrt( 4.0 ); }>( ) ) { > doA( ); > } else { > doB( ); > } > } This is EXTREMELY contrived. You've basically set up a program where you detect is std::sqrt is constexpr, and then said you get different results depending whether std::sq