C ++的另一个typedef错误

时间:2012-07-05 15:41:26

标签: c++

#ifndef C_H
#define C_H
#include <memory>
class C
{
public:
    C(){};
    ~C() {};
};
typedef auto_ptr<C> CPtr;


#endif

上面的代码对我来说似乎不错,但是当我用VC10编译它们时,我遇到了以下错误: “错误C2143:语法错误:缺少';'在'&lt;'“之前。任何有关它的想法将不胜感激。

1 个答案:

答案 0 :(得分:6)

#include <memory>auto_ptr - 命名空间中为您提供了std,因此您可以通过将typedef替换为:

进行编译
typedef std::auto_ptr<C> CPtr;

或者,您可以使用auto_ptr语句将using引入当前命名空间,但您不应该在标头中执行此操作。为此,您需要添加using std::auto_ptr;using namespace std;等语句。