brintos

brintos / llvm-project-archived public Read only

0
0
Text · 765 B · 4f66ec4 Raw
32 lines · cpp
1// RUN: %clang_cc1 -std=c++2a -emit-llvm-only %s2// RUN: %clang_cc1 -std=c++2a -fsyntax-only -fdelayed-template-parsing %s3// RUN: %clang_cc1 -std=c++2a -fsyntax-only -fms-extensions %s4// RUN: %clang_cc1 -std=c++2a -fsyntax-only -fdelayed-template-parsing -fms-extensions %s5 6namespace PR45881 {7struct A {8    void f();9};10int id(A*);11void A::f() {12    auto z = [*this](auto z2, decltype(z2(this)) z3){};13    z(id,3);14}15 16struct B {17    void f();18};19void B::f() {20    auto z = []<typename TT, typename TTT=decltype(TT()(this))>(){return 0;};21    z.template operator()<int(*)(B*)>();22}23 24struct C {25    void f();26};27void C::f() {28    auto z = []<typename TT, decltype(TT()(this)) n>(){return 0;};29    z.template operator()<int(*)(C*), 8>();30}31} // namespace PR4588132