提问人:Vittorio Romeo 提问时间:1/11/2022 最后编辑:cigienVittorio Romeo 更新时间:1/11/2022 访问量:310
clang vs gcc - 从模板参数派生的结构体的 CTAD
clang vs gcc - CTAD of struct deriving from template parameter
问:
请考虑以下代码:
template <typename B>
struct D : B { };
D d{[]{ }};
GCC 12.x 接受它并推断出符合预期。
d
D</* type of lambda */>
Clang 14.x 拒绝它,并显示以下错误:
<source>:4:3: error: no viable constructor
or deduction guide for deduction of template arguments of 'D'
D d{[]{ }};
^
<source>:2:8: note: candidate template ignored:
could not match 'D<B>' against '(lambda at <source>:4:5)'
struct D : B { };
^
<source>:2:8: note: candidate function template not viable:
requires 0 arguments, but 1 was provided
哪个编译器在这里表现正确?
答:
评论