【发布时间】:2013-01-23 04:05:03
【问题描述】:
我已经定义了这样的函数:
template<typename T>
void SwapMe(T *first, T *second)
{
T tmp = *first;
*first = *second;
*second = tmp;
}
然后像这样使用它:
SwapMe(&data[i], &data[j]);
如您所见,我没有明确使用 SwapMe<T>(...);,但它确实有效!
为什么 C++ 标准允许避免显式指定参数的类型?
【问题讨论】:
-
STL 将此作为his series 的一部分。
-
Oleg,这叫做模板参数推导。我建议你先看看一些好的C++ book。
标签: c++ function templates arguments explicit