源自Boost最优雅的C++单例模式

源自Boost最优雅的C++单例模式


一、Boost Thread库

Boost功能非常强大,在此借鉴一下其线程库中的单例源码,线程安全且优雅。


二、singleton.hpp

cpp 复制代码
#pragma once

template<class T>
class singleton: private T
{
public:
	static T& instance()
	{
		static singleton<T> inst;
		return inst;
	}
};

#define INSTANCE(class_name)	singleton<class_name>::instance()

三、测试示例

cpp 复制代码
#include "singleton.hpp"
#include <stdio.h>

class Demo
{
public:
	void test() { printf("test\n");}
};

int main() 
{
	INSTANCE(Demo).test();
	return 0;
}

四、参考链接

include/boost/thread/detail/singleton.hpp

相关推荐
听风吟丶1 分钟前
Java 高级多线程编程:从虚拟线程到结构化并发的实战演进
java·开发语言
lijiatu100869 分钟前
C++ 类成员变量声明语法错误
java·开发语言·c++
zore_c11 分钟前
【C语言】带你层层深入指针——指针详解2
c语言·开发语言·c++·经验分享·笔记
cookies_s_s15 分钟前
项目--协程库(C++)前置知识篇
linux·服务器·c++
Monly2118 分钟前
Java八股文:Redis篇
java·开发语言·redis
爱学习的程序媛24 分钟前
《JavaScript权威指南》核心知识点梳理
开发语言·前端·javascript·ecmascript
帮帮志29 分钟前
【AI大模型对话】流式输出和非流式输出的定义和区别
开发语言·人工智能·python·大模型·anaconda
陈奕昆29 分钟前
n8n实战营Day1课时2:核心概念拆解+天气提醒工作流实操
开发语言·人工智能·n8n
zmzb010332 分钟前
C++课后习题训练记录Day39
数据结构·c++·算法
jquerybootstrap34 分钟前
大地2000转经纬度坐标
linux·开发语言·python