If you can read this text, it means you are not experiencing this website at its best. This website is designed for used with a standards-compliant browser.
Current version: 2.3.2
ZThreads
A platform-independent, multi-threading and synchronization library for C++
Home Documentation Downloads CVS Contact
Singleton< T, InstantiationPolicy, LockType > Class Template Reference

#include <Singleton.h>

Inheritance diagram for Singleton< T, InstantiationPolicy, LockType >:
LazyInstantiation NonCopyable

Static Public Member Functions

static T * instance ()
 

Detailed Description

template<class T, class InstantiationPolicy = LazyInstantiation, class LockType = FastMutex>
class ZThread::Singleton< T, InstantiationPolicy, LockType >
Author
Eric Crahen http://www.code-foo.com
Date
<2003-07-16T17:57:45-0400>
Version
2.2.0

Based on the work of John Vlissidles in his book 'Pattern Hatching' an article by Douglas Schmidtt on double-checked locking and policy templates described by Andrei Alexandrescu.

This is a thread safe wrapper for creating Singleton classes. The synchronization method and instantiation methods can be changed easily by specifying different policy implementations as the templates parameters.

// Most common Singleton
Singletion<LonesomeType>
// Singleton that uses static storage
Singletion<LonesomeType, StaticInstantiation>
// Single-threaded singleton that uses static storage (Meyers-like)
Singletion<LonesomeType, LocalStaticInstantiation, NotLocked>

Member Function Documentation

◆ instance()

T * instance
static

Provide access to the single instance through double-checked locking

Returns
T* single instance

The documentation for this class was generated from the following file: