考虑这个简单的函数。
template<typename T>
void func(const T& x) {std::cout<< typeid(T).name();}
现在如果我调用函数 func("ddd")
,T
推断出什么?如果 func
的参数中没有 const
,T
将简单地是 char [4]
。令人困惑的是添加了 const
,那么 T
推断出什么呢?
是这样吗:const char [4]
。如果我将参数改为 T const &x
(即更改 const
的顺序),那么推导会将 T
推导为 char const [4]
吗?
有谁能解释一下带有字符串字面值的参数推导吗?
func()
,我猜您会得到一个编译错误,因为func
需要一个参数。 - Didier Trosset