如何解决类模板参数推导的任何替代推导?
template <typename T,std::size_t N>
class iterator
{
explicit iterator(T*);
};
我尝试使用 c++17 特性 Class template argument deduction (CTAD)
来推导 T
,但我不能这样做,因为无法推导 N
并指定 {{1 }} 表示无论如何都不会尝试 CTAD。所以我采用了老式的方式:
N
这允许我只提供 template <std::size_t N,typename T>
auto make_iterator(T* const p)
{
return iterator<T,N>(p);
}
并推导出 N
。是否有我忽略的 c++20(及更高版本)功能,可以让我免除此功能?我试过这个:
T
但是,它不起作用,因为:
类模板参数推导仅在没有模板的情况下进行 存在参数列表。如果指定了模板参数列表, 不发生扣减。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。