为什么不在第二行的decltype(* beg)之前使用typename。在remove_reference <decltype(* beg)> :: type之前是否有必要?为什么?

时间:2020-06-03 16:05:50

标签: c++ templates decltype typename

为什么在第二行的decltype(* beg)之前不要使用typename关键字。 是否需要在typename之前加入remove_reference<decltype(*beg)>::type? 他们为什么不同? 谢谢!

template <typename It>
auto fcn(It beg, It end) -> decltype(*beg)
{
    return *beg;    
}
template <typename It>
auto fcn2(It beg, It end) -> typename remove_reference<decltype(*beg)>::type
{
    return *beg;   
}

0 个答案:

没有答案
相关问题