Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Morgner2018-07-20 11:17:53 +0000
committerNathan Ridge2018-07-24 06:10:59 +0000
commit2dd5e7193de176ac044edbb1126c6d6ed9735478 (patch)
tree0f4e5ee19e844658e00f56f328950d330e21163a /core/org.eclipse.cdt.core.tests/resources
parent1f89361032478066095609e729ac87bee9df4824 (diff)
downloadorg.eclipse.cdt-2dd5e7193de176ac044edbb1126c6d6ed9735478.tar.gz
org.eclipse.cdt-2dd5e7193de176ac044edbb1126c6d6ed9735478.tar.xz
org.eclipse.cdt-2dd5e7193de176ac044edbb1126c6d6ed9735478.zip
537217: [C++17] Add support for typename keyword for template template parameters
This patch allows for the 'typename' keyword to be used in template-template template parameter declarations. Additionally, this patch also fixes an issue in the writer, which caused the ellipsis in variadic template-template template parameter declaration to be dropped. Change-Id: I8f68e6053b2b8848b35d1cf6d25d7f4b5b9d396d Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=537217 Signed-off-by: Felix Morgner <fmorgner@hsr.ch>
Diffstat (limited to 'core/org.eclipse.cdt.core.tests/resources')
-rw-r--r--core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterTemplateTestSource.awts58
1 files changed, 57 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterTemplateTestSource.awts b/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterTemplateTestSource.awts
index 494f57bf372..54c82cc9a21 100644
--- a/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterTemplateTestSource.awts
+++ b/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterTemplateTestSource.awts
@@ -64,4 +64,60 @@ template<typename T> struct S
int f()
{
return S<int>::template c<100>;
-} \ No newline at end of file
+}
+
+//!Type Template Parameter with class
+//%CPP
+template<class >
+void f()
+{
+}
+
+//!Type Template Parameter with typename
+//%CPP
+template<typename >
+void f()
+{
+}
+
+//!Variadic Type Template Parameter with class
+//%CPP
+template<class... >
+void f()
+{
+}
+
+//!Variadic Type Template Parameter with typename
+//%CPP
+template<typename... >
+void f()
+{
+}
+
+//!Template-template Template Parameter with class
+//%CPP
+template<template <typename > class >
+void f()
+{
+}
+
+//!Template-template Template Parameter with typename
+//%CPP
+template<template <typename > typename >
+void f()
+{
+}
+
+//!Variadic Template-template Template Parameter with class
+//%CPP
+template<template <typename > class... >
+void f()
+{
+}
+
+//!Variadic Template-template Template Parameter with typename
+//%CPP
+template<template <typename > typename... >
+void f()
+{
+}

Back to the top