C++使用内联变量结合智能指针实现单例模式时遇到这样的问题,有哪位高人知道为啥吗?
#include <iostream>
#include <memory>
#pragma warning(disable : 4996)
class MyClass
{
public:
~MyClass()
{
}
MyClass()
{
}
private:
static inline std::shared_ptr<MyClass> ptr{new MyClass };// error C2027: use of undefined type 'MyClass'
};
然而这样写就没有问题:
#include <iostream>
#include <memory>
#pragma warning(disable : 4996)
class MyClass
{
public:
~MyClass()
{
}
MyClass()
{
}
private:
static inline std::shared_ptr<MyClass> ptr{ std::make_shared<MyClass>()};
};