================
@@ -29,6 +29,35 @@ namespace std {
#endif
} // namespace std
+namespace cwg2707 { // cwg2707: 20
+
+#if __cplusplus >= 202002L
+
+template <class T, unsigned N> struct A { // #cwg2707-A
+ T value[N];
+};
+
+template <typename... T>
+A(T...) -> A<int, sizeof...(T)> requires (sizeof...(T) == 2); //
#cwg2707-guide-A
+
+// Brace elision is not allowed for synthesized CTAD guides if the array size
+// is value-dependent.
+// So this should pick up our explicit deduction guide.
+A a = {1, 2};
+
+A b = {3, 4, 5};
+// since-cxx20-error@-1 {{no viable constructor or deduction guide}} \
----------------
Endilll wrote:
```suggestion
// since-cxx20-error@-1 {{no viable constructor or deduction guide}}
```
I don't think that backslashes are needed.
https://github.com/llvm/llvm-project/pull/110842
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits