Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
      2 
      3 template<typename T, typename U> struct is_same {
      4   static const bool value = false;
      5 };
      6 
      7 template<typename T> struct is_same<T, T> {
      8   static const bool value = true;
      9 };
     10 
     11 struct S {
     12   void f() { static_assert(is_same<decltype(this), S*>::value, ""); }
     13   void g() const { static_assert(is_same<decltype(this), const S*>::value, ""); }
     14   void h() volatile { static_assert(is_same<decltype(this), volatile S*>::value, ""); }
     15   void i() const volatile { static_assert(is_same<decltype(this), const volatile S*>::value, ""); }
     16 };
     17