blob: bbcdbeebaca1a3c83842fd68dd34a2f59429a9d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#pragma once
// 静态构造函数
#include "ThirdParty/StaticConstructor/include/StaticConstructor.h"
typedef void(*StaticFunc) ();
// 自动初始化静态数据
class StaticFuncInvoker
{
public:
// Default Constructor:
StaticFuncInvoker(StaticFunc func)
{
if (func)
func();
}
};
// 调用具名的static函数
#define InvokeStaticFunc(func)\
static StaticFuncInvoker staticInvokerOf_##func(func);
// 用来初始化当前cpp里的静态变量
#define InitializeStaticVariables(lambda)\
static StaticFuncInvoker staticInvoker(lambda);
|