使用模板类编写一个容器打印的代码:
template<class T>
class P_STL
{
public:
void print(T &t)
{
for (mit = t.begin();mit != t.end();mit++)
{
cout << *mit << endl;
}
}
private:
//T::iterator mit; //error
//auto mit = T().begin(); //error
decltype(T().begin()) mit; //OK
};
问题有三个:
1、T()代表什么,为什么能正常使用?
2、第一个error能理解,T不是个具体类型;第二个为什么error?
3、decltype的ok和auto error的原因和区别是什么