unique_ptr 无法初始化
unique_ptr can't initialize
我在一个项目中有以下代码,它给我一个错误 C2059,语法错误 "new",unique_ptr
行是错误的。
#include <memory>
class Nothing {
public:
Nothing() { };
};
class IWriter
{
public:
IWriter() {
}
~IWriter() {
}
private:
std::unique_ptr<Nothing> test(new Nothing());
};
这里发生了什么?
您正在尝试使用 default member initializer,但使用方式有误。它必须只是一个 brace initializer(或 equals initializer)(包含在成员声明中)。
你可以使用 list initialization (C++11 起):
std::unique_ptr<Nothing> test{ new Nothing() };
class IWriter
{
public:
IWriter() : test(new Nothing) {
}
~IWriter() {
}
private:
std::unique_ptr<Nothing> test;
};
我在一个项目中有以下代码,它给我一个错误 C2059,语法错误 "new",unique_ptr
行是错误的。
#include <memory>
class Nothing {
public:
Nothing() { };
};
class IWriter
{
public:
IWriter() {
}
~IWriter() {
}
private:
std::unique_ptr<Nothing> test(new Nothing());
};
这里发生了什么?
您正在尝试使用 default member initializer,但使用方式有误。它必须只是一个 brace initializer(或 equals initializer)(包含在成员声明中)。
你可以使用 list initialization (C++11 起):
std::unique_ptr<Nothing> test{ new Nothing() };
class IWriter
{
public:
IWriter() : test(new Nothing) {
}
~IWriter() {
}
private:
std::unique_ptr<Nothing> test;
};