We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 588762c commit 3c5b72dCopy full SHA for 3c5b72d
clang/test/SemaCXX/pr98102.cpp
@@ -0,0 +1,33 @@
1
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s
2
+// expected-no-diagnostics
3
+
4
+template <bool v>
5
+struct BC {
6
+ static constexpr bool value = v;
7
+};
8
9
+template <typename T, typename Arg>
10
+struct Constructible : BC<__is_constructible(T, Arg)> {};
11
12
+template <typename T>
13
+using Requires = T::value;
14
15
16
+struct optional {
17
+ template <typename U, Requires<Constructible<T, U>> = true>
18
+ optional(U) {}
19
20
21
+struct MO {};
22
+struct S : MO {};
23
+struct TB {
24
+ TB(optional<S>) {}
25
26
27
+class TD : TB, MO {
28
+ using TB::TB;
29
30
31
+void foo() {
32
+ static_assert(Constructible<TD, TD>::value);
33
+}
0 commit comments