首页 > 解决方案 > 为什么模板函数前面需要typename?

问题描述

我正在使用 Stroustrup C++ 第 4 版第 692 页的示例。有谁知道为什么typename必须先来Iter::value_type?特别是关于第二个mean功能,为什么typename不需要这个模板功能?

我按顺序通读了 Stroustrup 的书,现在在模板部分。我不记得读过这背后的原因。

感谢您的指导!

template<typename Iter>
typename Iter::value_type mean(Iter first, Iter last);

template<typename T>
T mean(T*,T*);

void f(vector<int>& v, int* p, int n)
{
    auto x = mean(v.begin(),v.end());
    auto y = mean(p,p+n);
}

标签: c++c++11

解决方案


推荐阅读