qt application和std :: shared_ptr

时间:2012-03-06 19:28:52

标签: c++ qt c++11 qt-creator shared-ptr

我想创建一个qt应用程序(使用qt-creator),它使用我的库,它是在VS2010中构建的。库包含一个使用std :: shred_ptr<>

的类
#include <memory>
struct MyStruct;

class MyClass
{
    public:
    MyClass::MyClass();

    protected:
    std::shared_ptr<MyStruct> mMember;
}

然后我使用This tutorial将库包含到应用程序中。  并获得下一个错误:

ISO C++ forbids declaration of 'shared_ptr' with no type
invalid use of '::'
expected ';' before '<' token

是解决这个问题的方法吗?

* PS *更正了代码(添加了包含和shared_ptr的参数类)。 但这些东西已经在原始代码中。 我想,qt-creator编译器中的问题。但我不确切知道,因为我在qt编程方面很新。

3 个答案:

答案 0 :(得分:3)

确保为编译器使用C ++ 11标志。例如,在 .pro -file:

QMAKE_CXXFLAGS += -std=c++0x

答案 1 :(得分:0)

您共享的代码中没有MyClass2的定义。

我相信您正在尝试std::shared_ptr<MyClass> mMember;

答案 2 :(得分:0)

在定义类之前包含<memory>。还要确保声明MyClass2