我以为我开始掌握 C++ 的窍门......
然后我写了我认为我们是非常简单的模板化函数,突然之间似乎没有什么意义了。编译器似乎甚至不喜欢我定义了一个模板化函数的事实,这似乎有点疯狂。它是单一的编译单元,所以我不确定它会抱怨什么。
#include <vector>
#include <iostream>
typedef std::vector<int> int_vec_type;
template <typename Type>
bool print_vec(Type::const_iterator itr, const Type::const_iterator end)
{
for (; itr != end; ++itr) {
std::cout << *itr << std::endl;
}
return true;
}
int
main()
{
int_vec_type ivec;
ivec.push_back(0);
ivec.push_back(1);
ivec.push_back(2);
print_vec(ivec.begin(), ivec.end());
return 0;
}
这些是编译错误:
tia.cc:7:22: 错误:'bool print_vec' 的模板声明</p>
tia.cc:7:37: 错误:在 'itr' 之前需要 ')'</p>
tia.cc:7:42: 错误: 'const' 之前的预期主表达式</p>
tia.cc:在函数“int main()”中:
tia.cc:25:39:错误:“print_vec”未在此范围内声明
提前致谢。