diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C new file mode 100644 index 00000000000..96c349a0da6 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C @@ -0,0 +1,23 @@ +// { dg-options "-std=c++0x" } + +// Add arguments to unbound template template parameter. + +template <template <class> class Template> +struct Internal { + template <class Arg> using Bind = Template<Arg>; +}; + +template <template <class> class Template, class Arg> +using Instantiate = Template<Arg>; // After parsing #1, the + // BOUND_TEMPLATE_TEMPLATE_PARM + // parameter Template gets + // the UNBOUND_CLASS_TEMPLATE + // Internal<Template>::template Bind + // as an argument, and the + // parameter Arg gets Argument as + // an argument. And we build + // 'Bind<Argument>'. + +template <template <class> class Template, class Argument> +using Bind = Instantiate<Internal<Template>::template Bind, Argument>; //#1 + |