// PR c++/77890 | |
// { dg-do compile { target c++17 } } | |
template<class F> struct S{S(F&&f){}}; | |
void f() | |
{ | |
S([]{}); | |
} | |
template <typename TF> | |
struct scope_guard : TF | |
{ | |
scope_guard(TF f) : TF{f} { } | |
~scope_guard() { (*this)(); } | |
}; | |
void g() | |
{ | |
struct K { void operator()() {} }; | |
scope_guard _{K{}}; | |
} |