一种单例的实现方法
来源:互联网 发布:如何用excel做数据库 编辑:程序博客网 时间:2024/05/17 21:42
/*用法:class A:public Singleton<A>{};在cpp文件中:template<> A* Singleton<A>::singleton_ = 0;*/#ifndef SINGLETON_H#define SINGLETON_H#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000// common include#include "common/platform.h"#include <stdio.h>#include <stdlib.h>#include <assert.h>// windows include#if PLATFORM == PLATFORM_WIN32#else// linux include#include <errno.h>#endifnamespace Core{template <typename T> class Singleton{protected:static T* singleton_;public:Singleton(void){assert(!singleton_);#if defined(_MSC_VER) && _MSC_VER < 1200 int offset = (int)(T*)1 - (int)(Singleton <T>*)(T*)1;singleton_ = (T*)((int)this + offset);#elsesingleton_ = static_cast< T* >(this);#endif}~Singleton(void){ assert(singleton_); singleton_ = 0; }static T& getSingleton(void) { assert(singleton_); return (*singleton_); }static T* getSingletonPtr(void){ return singleton_; }};#define SINGLETON_INIT( TYPE )\template <> TYPE * Singleton< TYPE >::singleton_ = 0;\}#endif // SINGLETON_H
0 0
- 单例模式的一种实现方法
- 单例模式的一种实现方法
- 一种单例的实现方法
- 单例模式(4)- 一种更好的单例实现方法
- [Unity3D]单例的一种实现方式
- C 语言单例的一种实现
- C++单例模式的一种实现
- 单例模式的数据库连接和PHP实现页面静态化的第一种方法
- python一种用staticmethod实现单例模式方法的探讨
- python一种用classmethod实现单例模式方法的探讨
- 单例模式-Singleton Pattern 确保对象的唯一性——单例模式 (四):一种更好的单例实现方法(静态内部类)
- 【C++】单例模式的一种简单实现的模板
- 一种线程安全的单例模式实现
- 【python】使用redis pool的一种单例实现方式
- 【怎样写代码】确保对象的唯一性 -- 单例模式(五):一种更好的单例实现方法(静态内部类)
- 单例的一种封装
- Android源码中的一种单例实现
- 单例模式(二)-------------一种更好的单例实现方式
- c语言关于二叉树的知识和float的一些问题
- 人生在世,不在于读多少,在于读什么?
- 高并发服务端分布式系统设计概要
- 【php】 勾搭 Composer\Autoload\ClassLoader 类
- uestc 人民币的构造 1264 (打表)
- 一种单例的实现方法
- 如何快速研究透一篇 Paper 并提出有价值的问题?
- 途牛谭俊青:多数据中心状态同步&两地三中心的理论
- 石头剪刀布人机对战
- c语言的数据链路层和冒泡法的一些知识
- Android 如何抓取开机Log
- hbase安装(使用已经安装的HDFS和zookeeper)
- qt嵌入式版本源码编译的各种问题
- Servlet的线程安全