https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118398
--- Comment #6 from mauro russo <ing.russomauro at gmail dot com> --- ok, I will also check for the confirmation from standard text. What about the fact that for func2, second clause is ignored after that first one fails ? Do you confirm it is fair ? Do you confirm that this is 'stronger' than the fact that second clause uses again a lambda which is not an immediate context ? (i.e., a kind of if constexpr that does not need for the excluded block to be compilable). I will also open a bug report for MVSC about func1 and func1b. So, based on your comments, on func1b, both MVSC and Clang behave incorrectly but for different motivations.