template class ugcs::vsm::Singleton

Overview

Helper class for implementing singletons. More…

#include <singleton.h>

template <class T>
class Singleton
{
public:
    // construction

    Singleton(const Singleton&);
    Singleton();

    // methods

    template <typename... Args>
    std::shared_ptr<T> Get_instance(Args&&... args);
};

Detailed Documentation

Helper class for implementing singletons.

Parameters:

T

type for instantiated class.

Construction

Singleton(const Singleton&)

Disable copying.

Methods

template <typename... Args>
std::shared_ptr<T> Get_instance(Args&&... args)

Get singleton instance.

The same instance is returned until the last reference is released. In case the target class does not have default constructor and the constructor arguments are not provided, the new instance is not created - nullptr is returned if it was not previously created.

Parameters:

args

Arguments to constructor if any.

Returns:

Global singleton instance.