add singleton pattern
This commit is contained in:
parent
25c7bb059c
commit
096ef69938
28
src/hack/patterns/singleton.hpp
Normal file
28
src/hack/patterns/singleton.hpp
Normal file
@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
namespace hack::patterns
|
||||
{
|
||||
struct no_copy
|
||||
{
|
||||
no_copy() = default;
|
||||
no_copy(const no_copy&&) = delete;
|
||||
no_copy operator=(const no_copy&&) = delete;
|
||||
};
|
||||
|
||||
struct no_move
|
||||
{
|
||||
no_move() = default;
|
||||
no_move(no_move&&) = delete;
|
||||
no_move operator=(no_move&&) = delete;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct singleton : public no_move, no_copy
|
||||
{
|
||||
static T& instance()
|
||||
{
|
||||
static T t;
|
||||
return t;
|
||||
}
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user