源自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

相关推荐
Thomas_YXQ13 分钟前
Unity3D Addressable 深度优化热更性能消耗
开发语言·3d·unity·微信
aini_lovee17 分钟前
C# 快递单打印系统(万能套打系统)
开发语言·c#
MZZ骏马19 分钟前
C++ 极简模式的日志
c++
天启HTTP22 分钟前
开启全局代理后网络变慢,问题出在哪
开发语言·前端·网络·tcp/ip·php
丑过三八线26 分钟前
Runc 深度解析:从原理到实操
java·linux·开发语言·docker·容器·rpc
STDD28 分钟前
ntfy 自托管推送通知服务搭建:一条 curl 命令向手机发送通知
java·开发语言·智能手机
小林ixn30 分钟前
从拼多多手机号验证到模板引擎:深入正则表达式与 JS 字符串处理
开发语言·javascript·正则表达式
AbandonForce30 分钟前
滑动窗口:定长滑动窗口与不定长滑动窗口
数据结构·c++·算法
周末也要写八哥37 分钟前
线程的生命周期之线程睡眠
java·开发语言·jvm