Class Singleton

Synopsis

#include <include/internal/catch_singletons.hpp>

template<typename SingletonImplT, typename InterfaceT = SingletonImplT, typename MutableInterfaceT = InterfaceT>
class Singleton : SingletonImplT, public ISingleton

Description

No description yet.

Inheritance

Ancestors: SingletonImplT, ISingleton

Methods

get
getMutable

Source

Lines 21-40 in include/internal/catch_singletons.hpp.

template<typename SingletonImplT, typename InterfaceT = SingletonImplT, typename MutableInterfaceT = InterfaceT>
class Singleton : SingletonImplT, public ISingleton {
    static auto getInternal() -> Singleton* {
        static Singleton* s_instance = nullptr;
        if( !s_instance ) {
            s_instance = new Singleton;
            addSingleton( s_instance );
        }
        return s_instance;
    }
public:
    static auto get() -> InterfaceT const& {
        return *getInternal();
    }
    static auto getMutable() -> MutableInterfaceT& {
        return *getInternal();
    }
};





Add Discussion as Guest

Log in