Witam
Chciałbym zrobić Singleton z wykorzystaniem unique_ptr, lecz ciągle sypie błędami których nie zbyt rozumiem nawet z pomocą google'a.
#include <memory>
#include <memory>
using namespace std;
class MyClass
{
public:
static unique_ptr<MyClass> Instance()
{
if (sInstance == nullptr) sInstance(new MyClass);
return sInstance;
}
private:
MyClass(){}
static unique_ptr<MyClass> sInstance;
};
int main()
{
shared_ptr<MyClass> ptr;
return 0;
}
Błedy:
IntelliSense: function "std::default_delete<_Ty>::operator() [with _Ty=MyClass]" (declared at line 1196 of "D:\Programy\Microsoft Visula Studio 2013 Express\VC\include\memory") is inaccessible
IntelliSense: function "std::unique_ptr<_Ty, _Dx>::unique_ptr(const std::unique_ptr<_Ty, _Dx>::_Myt &) [with _Ty=MyClass, _Dx=std::default_delete<MyClass>]" (declared at line 1486 of "D:\Programy\Microsoft Visula Studio 2013 Express\VC\include\memory") cannot be referenced -- it is a deleted function