create design dir to learning design mode
This commit is contained in:
parent
2c93f8bb73
commit
b02e7e507e
15
.vscode/c_cpp_properties.json
vendored
Normal file
15
.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Linux",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**",
|
||||
"/usr/include/**"
|
||||
],
|
||||
"defines": [],
|
||||
"compilerPath": "/usr/bin/clang-18",
|
||||
"intelliSenseMode": "linux-clang-x64"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
55
.vscode/settings.json
vendored
Normal file
55
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"cctype": "cpp",
|
||||
"clocale": "cpp",
|
||||
"cmath": "cpp",
|
||||
"cstdarg": "cpp",
|
||||
"cstddef": "cpp",
|
||||
"cstdio": "cpp",
|
||||
"cstdlib": "cpp",
|
||||
"ctime": "cpp",
|
||||
"cwchar": "cpp",
|
||||
"cwctype": "cpp",
|
||||
"array": "cpp",
|
||||
"atomic": "cpp",
|
||||
"bit": "cpp",
|
||||
"*.tcc": "cpp",
|
||||
"charconv": "cpp",
|
||||
"compare": "cpp",
|
||||
"concepts": "cpp",
|
||||
"cstdint": "cpp",
|
||||
"deque": "cpp",
|
||||
"string": "cpp",
|
||||
"unordered_map": "cpp",
|
||||
"vector": "cpp",
|
||||
"exception": "cpp",
|
||||
"algorithm": "cpp",
|
||||
"functional": "cpp",
|
||||
"iterator": "cpp",
|
||||
"memory": "cpp",
|
||||
"memory_resource": "cpp",
|
||||
"numeric": "cpp",
|
||||
"optional": "cpp",
|
||||
"random": "cpp",
|
||||
"string_view": "cpp",
|
||||
"system_error": "cpp",
|
||||
"tuple": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"utility": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"iostream": "cpp",
|
||||
"istream": "cpp",
|
||||
"limits": "cpp",
|
||||
"new": "cpp",
|
||||
"numbers": "cpp",
|
||||
"ostream": "cpp",
|
||||
"span": "cpp",
|
||||
"stdexcept": "cpp",
|
||||
"streambuf": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"variant": "cpp",
|
||||
"format": "cpp",
|
||||
"text_encoding": "cpp"
|
||||
}
|
||||
}
|
27
src/design/single.c
Normal file
27
src/design/single.c
Normal file
@ -0,0 +1,27 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <stdatomic.h>
|
||||
|
||||
struct Singleton
|
||||
{
|
||||
};
|
||||
|
||||
struct Singleton *getInstance()
|
||||
{
|
||||
static atomic_flag flag = ATOMIC_FLAG_INIT;
|
||||
|
||||
static struct Singleton *instance = NULL;
|
||||
|
||||
if (!instance)
|
||||
{
|
||||
if (atomic_flag_test_and_set(&flag) == 0)
|
||||
{
|
||||
instance = malloc(sizeof(struct Singleton));
|
||||
}
|
||||
while (!instance)
|
||||
;
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
19
src/design/single.cc
Normal file
19
src/design/single.cc
Normal file
@ -0,0 +1,19 @@
|
||||
#include <mutex>
|
||||
|
||||
class Singleton
|
||||
{
|
||||
|
||||
Singleton(const Singleton &) = delete;
|
||||
Singleton &operator=(const Singleton &) = delete;
|
||||
|
||||
static Singleton &getInstnce()
|
||||
{
|
||||
static Singleton instance;
|
||||
return instance;
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
Singleton() {}
|
||||
~Singleton() {}
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user