Considering type A
:
template <typename T, size_t N>
struct A
{
T arr[N];
};
Is there any difference between C++17 user-defined deduction guides
template <typename T, typename ... Ts>
A(const T&, const Ts& ...) -> A<T, 1 + sizeof...(Ts)>;
and
template <typename T, typename ... Ts>
A(T, Ts ...) -> A<T, 1 + sizeof...(Ts)>;
?
Or, in other words is there any difference between const references and values in deduction guides?
Please note that the question is not about template function type deduction, but about the new C++17 feature, user-defined deduction guides for class template argument deduction, so you can simply declare A instance{1,2,3}
instead of A<int, 3> instance{1,2,3}
.