aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec6.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec6.C')
-rw-r--r--gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec6.C18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec6.C b/gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec6.C
new file mode 100644
index 00000000000..13f04d77594
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec6.C
@@ -0,0 +1,18 @@
+// { dg-do compile { target c++2a } }
+
+template<typename T>
+struct A {
+ template<class T2> void f1(T, T2); // member template
+ template<class T2> void f2(T, T2); // member template
+};
+
+template<>
+template<class X1> void A<int>::f1(int, X1);
+
+// Specialization with template-id
+template<>
+template<> void A<int>::f2<char>(int, char);
+
+// Specialization with deduction
+template<>
+template<> void A<int>::f1(int, char);