#ifndef C_H
#define C_H
#include <memory>
class C
{
public:
C(){};
~C() {};
};
typedef auto_ptr<C> CPtr;
#endif
上面的代码对我来说似乎不错,但是当我用VC10编译它们时,我遇到了以下错误: “错误C2143:语法错误:缺少';'在'&lt;'“之前。任何有关它的想法将不胜感激。
答案 0 :(得分:6)
#include <memory>
在auto_ptr
- 命名空间中为您提供了std
,因此您可以通过将typedef
替换为:
typedef std::auto_ptr<C> CPtr;
或者,您可以使用auto_ptr
语句将using
引入当前命名空间,但您不应该在标头中执行此操作。为此,您需要添加using std::auto_ptr;
或using namespace std;
等语句。