RMVL  1.1.0
RoboMaster Vision Library
单例模板

作者
赵曦
日期
2022/02/09

下一篇教程:聚合类反射及其相关 API


相关类 rm::GlobalSingleton

1. 如何配置

在 CMakeLists.txt 中链接目标库

target_link_libraries(
xxx
rmvl_singleton
)

2. 如何使用

2.1 包含头文件

#include <rmvl/singleton.hpp>

2.2 定义或使用现有的类

class MyClass
{
int _a;
double _b;
const char *_c;
public:
MyClass(int a, double b, const char *c) :
_a(a), _b(b), _c(c) {}
inline int getA() { return _a; }
inline double getB() { return _b; }
inline const char *getC() { return _c; }
};

2.3 创建单例

GlobalSingleton<MyClass> my_class;
// Pass in the arguments specified by the constructor
my_class.New(1, 3.14, "hello");

2.4 获取单例

MyClass* tmp = my_class.Get();
std::cout << "a = " << tmp->getA() << std::endl;
std::cout << "b = " << tmp->getB() << std::endl;
std::cout << "c = " << tmp->getC() << std::endl;

2.5 销毁单例

my_class.Delete();