Home | History | Annotate | Download | only in expr.prim.general
      1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
      2 
      3 struct S {
      4   S *p = this; // ok
      5   decltype(this) q; // expected-error {{invalid use of 'this' outside of a non-static member function}}
      6 
      7   int arr[sizeof(this)]; // expected-error {{invalid use of 'this' outside of a non-static member function}}
      8   int sz = sizeof(this); // ok
      9 
     10   typedef auto f() -> decltype(this); // expected-error {{invalid use of 'this' outside of a non-static member function}}
     11 };
     12 
     13 namespace CaptureThis {
     14   struct X {
     15     int n = 10;
     16     int m = [&]{return n + 1; }();
     17     int o = [&]{return this->m + 1; }();
     18     int p = [&]{return [&](int x) { return this->m + x;}(o); }();
     19   };
     20 
     21   X x;
     22 }
     23