首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类模板参数演绎-为什么在这里失败?

类模板参数演绎-为什么在这里失败?
EN

Stack Overflow用户
提问于 2022-01-15 07:46:40
回答 1查看 277关注 0票数 5

为什么下面的CTAD尝试无法编译?

代码语言:javascript
复制
template <typename T> struct C { C(T,T) {} };
template <> struct C<int> { C(int) {} };

C c(1);  //error: template argument deduction failure

我原以为构造函数C(int)会被推导出来。

EN

回答 1

Stack Overflow用户

发布于 2022-01-15 08:36:29

隐式演绎指南只为主模板中的构造函数生成,而不是为专门化的构造函数生成。

您需要显式地添加扣减指南:

代码语言:javascript
复制
C(int) -> C<int>;
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70719688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档