Я пытаюсь написать шаблон синглтона в классе person, который дает мне возможность создать только один экземпляр для этого класса, и я могу использовать его в любом месте моей программы.
Ниже приведен класс:
// The declaration
class Person {
static unique_ptr<Person> instance;
Person() = default;
Person(Person&) = delete;
Person& operator=(const Person&) = delete;
~Person() = default;
public:
static unique_ptr<Person> getInstance();
};
// The implementation
unique_ptr<Person> instance = NULL;
unique_ptr<Person> Person::getInstance() {
if (instance == NULL) {
instance = unique_ptr<Person>(new Person());
}
return instance;
}
Но проблема в том, что он дает мне эту ошибку: Error C2280 'std::unique_ptr<Person,std::default_delete<_Ty>>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': attempting to reference a deleted function
К сожалению, я не понимаю этой проблемы и не знаю, как ее решить?