,STL源码剖析中的vector代码,编译出错
求助,STL源码剖析中的vector代码,编译出错
1>g:\stl学习\sgi_stl\sgi_stl\sgi_stl.cpp(27) : error C2143: 语法错误 : 缺少“;”(在“<”的前面)
1> g:\stl学习\sgi_stl\sgi_stl\sgi_stl.cpp(40): 参见对正在编译的类 模板 实例化“vector<T,Alloc>”的引用
1>g:\stl学习\sgi_stl\sgi_stl\sgi_stl.cpp(27) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>g:\stl学习\sgi_stl\sgi_stl\sgi_stl.cpp(27) : error C2238: 意外的标记位于“;”之前
为什么错了啊,怎么都想不通,求解释
------解决方案--------------------
是不是没包含 simple_alloc 的头文件啊.
------解决方案--------------------
既然你知道类名应当是不能识别的,就先把simple_alloc的定义加进去啊
STL的编译错误是以难懂著称的
------解决方案--------------------
如果lz已经有simple_alloc的定义,不妨发上来看看,如果没有,就老老实实写好再说
template <class T, class Alloc = alloc>
class vector
{
public:
typedef T value_type;
typedef value_type* pointer;
typedef value_type* iterator;
typedef value_type& reference;
typedef size_t size_type;
typedef ptrdiff_t difference_type;
protected:
typedef simple_alloc<value_type, Alloc> data_allocator; //这句注释掉就不错了
iterator start;
iterator finish;
iterator end_of_storage;
};
1>g:\stl学习\sgi_stl\sgi_stl\sgi_stl.cpp(27) : error C2143: 语法错误 : 缺少“;”(在“<”的前面)
1> g:\stl学习\sgi_stl\sgi_stl\sgi_stl.cpp(40): 参见对正在编译的类 模板 实例化“vector<T,Alloc>”的引用
1>g:\stl学习\sgi_stl\sgi_stl\sgi_stl.cpp(27) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>g:\stl学习\sgi_stl\sgi_stl\sgi_stl.cpp(27) : error C2238: 意外的标记位于“;”之前
为什么错了啊,怎么都想不通,求解释
------解决方案--------------------
是不是没包含 simple_alloc 的头文件啊.
------解决方案--------------------
既然你知道类名应当是不能识别的,就先把simple_alloc的定义加进去啊
STL的编译错误是以难懂著称的
------解决方案--------------------
如果lz已经有simple_alloc的定义,不妨发上来看看,如果没有,就老老实实写好再说