diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 |
commit | bfef399519ca9b8a4b4c6b563253bad7e0eeffe0 (patch) | |
tree | df8df0b0067b381eab470a3b8f28d14a552a6340 /test/SemaTemplate/alias-templates.cpp | |
parent | 6a0372513edbc473b538d2f724efac50405d6fef (diff) |
Diffstat (limited to 'test/SemaTemplate/alias-templates.cpp')
-rw-r--r-- | test/SemaTemplate/alias-templates.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/SemaTemplate/alias-templates.cpp b/test/SemaTemplate/alias-templates.cpp index 20ba6e0cb7bc..e7be184db3d6 100644 --- a/test/SemaTemplate/alias-templates.cpp +++ b/test/SemaTemplate/alias-templates.cpp @@ -166,3 +166,38 @@ namespace PR13136 { return 0; } } + +namespace PR16646 { + namespace test1 { + template <typename T> struct DefaultValue { const T value=0;}; + template <typename ... Args> struct tuple {}; + template <typename ... Args> using Zero = tuple<DefaultValue<Args> ...>; + template <typename ... Args> void f(const Zero<Args ...> &t); + void f() { + f(Zero<int,double,double>()); + } + } + + namespace test2 { + template<int x> struct X {}; + template <template<int x> class temp> struct DefaultValue { const temp<0> value; }; + template <typename ... Args> struct tuple {}; + template <template<int x> class... Args> using Zero = tuple<DefaultValue<Args> ...>; + template <template<int x> class... Args> void f(const Zero<Args ...> &t); + void f() { + f(Zero<X,X,X>()); + } + } +} + +namespace PR16904 { + template <typename,typename> + struct base { + template <typename> struct derived; + }; + // FIXME: The diagnostics here are terrible. + template <typename T, typename U, typename V> + using derived = base<T, U>::template derived<V>; // expected-error {{expected a type}} expected-error {{expected ';'}} + template <typename T, typename U, typename V> + using derived2 = ::PR16904::base<T, U>::template derived<V>; // expected-error {{expected a type}} expected-error {{expected ';'}} +} |