aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp1z/class-deduction20.C
blob: 4c009e70140b54bab9a21991bbee09c4e81ce49b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 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{}};
}