summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX
diff options
context:
space:
mode:
authorSaar Raz <saar@raz.email>2020-01-22 04:21:09 +0200
committerSaar Raz <saar@raz.email>2020-01-24 02:28:32 +0200
commit29f14c1df25992db8c908e441c69e1fd4d4e4010 (patch)
treec4f05cf40010d90203cf59ed256ae9fecf1a4c94 /clang/test/CXX
parenta9b2cf6c625ab15e3cef00350c855e7cd319cf83 (diff)
downloadbcm5719-llvm-29f14c1df25992db8c908e441c69e1fd4d4e4010.tar.gz
bcm5719-llvm-29f14c1df25992db8c908e441c69e1fd4d4e4010.zip
[Concepts] Implement P1616R1 - Using unconstrained template template parameters with constrained templates
Summary: Allow unconstrained template template parameters to accept constrainted templates as arguments. Reviewers: rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73155 (cherry picked from commit d42d5eb8ea77b3a3a502a60ba3f053fb81a897f3)
Diffstat (limited to 'clang/test/CXX')
-rw-r--r--clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp b/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp
index 593336163fa..e7feae31889 100644
--- a/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp
+++ b/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp
@@ -7,9 +7,9 @@ template<typename T> concept F = T::f();
// expected-note@-1{{similar constraint expressions not considered equivalent}}
template<template<C> class P> struct S1 { }; // expected-note 2{{'P' declared here}}
-template<C> struct X { }; // expected-note{{'X' declared here}}
+template<C> struct X { };
-template<D> struct Y { }; // expected-note 2{{'Y' declared here}}
+template<D> struct Y { }; // expected-note{{'Y' declared here}}
template<typename T> struct Z { };
template<F> struct W { }; // expected-note{{'W' declared here}}
@@ -18,10 +18,10 @@ S1<Y> s12; // expected-error{{template template argument 'Y' is more constrained
S1<Z> s13;
S1<W> s14; // expected-error{{template template argument 'W' is more constrained than template template parameter 'P'}}
-template<template<typename> class P> struct S2 { }; // expected-note 2{{'P' declared here}}
+template<template<typename> class P> struct S2 { };
-S2<X> s21; // expected-error{{template template argument 'X' is more constrained than template template parameter 'P'}}
-S2<Y> s22; // expected-error{{template template argument 'Y' is more constrained than template template parameter 'P'}}
+S2<X> s21;
+S2<Y> s22;
S2<Z> s23;
template <template <typename...> class C>
OpenPOWER on IntegriCloud