summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/local-member-templates.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaTemplate/local-member-templates.cpp')
-rw-r--r--clang/test/SemaTemplate/local-member-templates.cpp99
1 files changed, 0 insertions, 99 deletions
diff --git a/clang/test/SemaTemplate/local-member-templates.cpp b/clang/test/SemaTemplate/local-member-templates.cpp
deleted file mode 100644
index 847d483a002..00000000000
--- a/clang/test/SemaTemplate/local-member-templates.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-// RUN: %clang_cc1 -std=c++1y -verify %s
-// RUN: %clang_cc1 -std=c++1y -verify %s -fdelayed-template-parsing
-
-namespace nested_local_templates_1 {
-
-template <class T> struct Outer {
- template <class U> int outer_mem(T t, U u) {
- struct Inner {
- template <class V> int inner_mem(T t, U u, V v) {
- struct InnerInner {
- template <class W> int inner_inner_mem(W w, T t, U u, V v) {
- return 0;
- }
- };
- InnerInner().inner_inner_mem("abc", t, u, v);
- return 0;
- }
- };
- Inner i;
- i.inner_mem(t, u, 3.14);
- return 0;
- }
-
- template <class U> int outer_mem(T t, U *u);
-};
-
-template int Outer<int>::outer_mem(int, char);
-
-template <class T> template <class U> int Outer<T>::outer_mem(T t, U *u) {
- struct Inner {
- template <class V>
- int inner_mem(T t, U u, V v) { //expected-note{{candidate function}}
- struct InnerInner {
- template <class W> int inner_inner_mem(W w, T t, U u, V v) { return 0; }
- };
- InnerInner().inner_inner_mem("abc", t, u, v);
- return 0;
- }
- };
- Inner i;
- i.inner_mem(t, U{}, i);
- i.inner_mem(t, u, 3.14); //expected-error{{no matching member function for call to 'inner}}
- return 0;
-}
-
-template int Outer<int>::outer_mem(int, char *); //expected-note{{in instantiation of function}}
-
-} // end ns
-
-namespace nested_local_templates_2 {
-
-template <class T> struct Outer {
- template <class U> void outer_mem(T t, U u) {
- struct Inner {
- template <class V> struct InnerTemplateClass {
- template <class W>
- void itc_mem(T t, U u, V v, W w) { //expected-note{{candidate function}}
- struct InnerInnerInner {
- template <class X> void iii_mem(X x) {}
- };
- InnerInnerInner i;
- i.iii_mem("abc");
- }
- };
- };
- Inner i;
- typename Inner::template InnerTemplateClass<Inner> ii;
- ii.itc_mem(t, u, i, "jim");
- ii.itc_mem(t, u, 0, "abd"); //expected-error{{no matching member function}}
- }
-};
-
-template void
-Outer<int>::outer_mem(int, char); //expected-note{{in instantiation of}}
-
-}
-
-namespace more_nested_local_templates {
-
-int test() {
- struct Local {
- template<class U> void foo(U u) {
- struct Inner {
- template<class A>
- auto operator()(A a, U u2) -> U {
- return u2;
- };
- };
- Inner GL;
- GL('a', u );
- GL(3.14, u );
- }
- };
- Local l;
- l.foo("nmabc");
- return 0;
-}
-int t = test();
-} \ No newline at end of file
OpenPOWER on IntegriCloud