//5-1.cpp
//编写一个具有单一类型模板参数的一元函数模板
//用类型int生成它的一个完全特化
//再为这个拥有单一的int参数的函数产生一个非模板重载
//在主函数中调用这三个函数
#include<iostream>
using namespace std;
template<class T> int get(const T& t)
{
return t;
};
template<> int get<int>(int& t)
{
return t;
};
template<class T> int get(int t)
{
return t;
};
int main()
{
const int i = 3;
int j = 1, g = 4;
cout << "get(i) = " << get(i) << endl;
cout << "get(j) = " << get(j) << endl;
cout << "get(g) = " << get(g) << endl;
return 0;
}
那个特化的函数模板为什么会有编译错误啊?
#include<iostream>
#include<vector>
using namespace std;
template<class T, template<class U, class allocator<U> > class Stack
{
private:
Seq<T> seq;
public:
void push_back(const T& t) { seq.push_back(t); }
typename Seq<T>::iterator begin() { return seq.begin(); }
typename Seq<T>::iterator end() { return seq.end(); }
};
int main()
{
Stack<int> stack;
stack.push_back(1);
stack.push_back(2);
for(vector<int>::iterator iter = stack.begin(); iter != stack.end(); ++iter)
cout << *iter << endl;
return 0;
}
这个带有模板参数的模板哪里错了啊?thinking in C++上他的例子就是这样写的,请高手指导~小弟不胜感激