Home | History | Annotate | Download | only in CodeGenCXX

Lines Matching defs:decltype

386   template <class T> decltype(((T*) 0)->member) read_member(T& obj) {
406 template <class T> decltype(((T*) 0)->Path1::ab) get_ab_1(T &ref) { return ref.Path1::ab; }
409 template <class T> decltype(((T*) 0)->Path2::ab) get_ab_2(T &ref) { return ref.Path2::ab; }
412 template <class T> decltype(((T*) 0)->Path1::p) get_p_1(T &ref) { return ref.Path1::p; }
415 template <class T> decltype(((T*) 0)->Path2::p) get_p_2(T &ref) { return ref.Path2::p; }
617 template <class T> void test0(decltype(f<T*>(0))) {}
618 template void test0<int>(decltype(f<int*>(0)));
621 template <class T> void test1(decltype(f<>(T()))) {}
622 template void test1<int>(decltype(f<>(int())));
633 void f(decltype(nullptr)) { }
675 template <template <class> class T> void foo(decltype(T<float>::object) &object) {}
697 template <class T> void a(decltype(T::inner::object) &object) {}
698 template <class T> void b(decltype(T().Alias::meth()) &object) {}
715 template <class T> void foo(decltype(A<T>::A::bit) x);
726 template <class U> static void foo(decltype(T::fn(U())) x);
739 template <class U> static void foo(decltype(T<U>::fn()) x);
749 namespace test31 { // instantiation-dependent mangling of decltype
751 template<class T> auto f1(T p)->decltype(x) { return 0; }
754 template<class T> auto f2(T p)->decltype(p) { return 0; }
758 template<class T> auto f3(T p)->decltype(g(p)) {}
801 // Mangling for instantiation-dependent decltype expressions.
803 void f(decltype(sizeof(decltype(T() + T())))) {}
806 template void f<int>(decltype(sizeof(1)));
827 template<typename T> void f4(::test34::A<sizeof(sizeof(decltype(T() + T())))>) { }
840 void f1(decltype(sizeof(&T::template operator+<int>))) {}