【发布时间】:2018-07-08 18:41:51
【问题描述】:
考虑类型A:
template <typename T, size_t N>
struct A
{
T arr[N];
};
C++17用户自定义deduction guides有什么区别
template <typename T, typename ... Ts>
A(const T&, const Ts& ...) -> A<T, 1 + sizeof...(Ts)>;
和
template <typename T, typename ... Ts>
A(T, Ts ...) -> A<T, 1 + sizeof...(Ts)>;
?
或者,换句话说,const 引用和演绎指南中的值有什么区别?
请注意,问题不是关于模板函数类型推导,而是关于新的 C++17 特性,类模板参数推导的用户定义推导指南,因此您可以简单地声明 A instance{1,2,3} 而不是 A<int, 3> instance{1,2,3} .
【问题讨论】:
标签: c++ language-lawyer c++17 variadic-templates template-argument-deduction