// PR c++/86740 | |
// { dg-do compile { target c++17 } } | |
struct Constant | |
{ | |
static constexpr int value = 0; | |
}; | |
template<typename F> | |
void invokeWithConstant(F &&f) | |
{ | |
f(Constant{}); | |
} | |
int foo() | |
{ | |
int count = 0; | |
invokeWithConstant | |
([&] (auto id1) | |
{ | |
invokeWithConstant | |
([&] (auto id2) | |
{ | |
if constexpr (id1.value == 0 && id2.value == 0) | |
[&] { count = 1; } (); | |
}); | |
}); | |
return count; | |
} |