我想创建一个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编程方面很新。
答案 0 :(得分:3)
确保为编译器使用C ++ 11标志。例如,在 .pro -file:
中QMAKE_CXXFLAGS += -std=c++0x
答案 1 :(得分:0)
您共享的代码中没有MyClass2
的定义。
我相信您正在尝试std::shared_ptr<MyClass> mMember;
答案 2 :(得分:0)
在定义类之前包含<memory>
。还要确保声明MyClass2
。