Сократить обращение к singleton классу

У меня в программе есть singleton класс, к объекту которого я обращаюсь как my_class::instance().metod(...)

Возможно ли эту запись сократить, не меняя имён класса/методов?

typedef my_class::instance() a; который я попробовал, не является правильным т.к. my_class::instance() - объект, а не тип (Появляется соответствующая ошибка)

my_class& my_class::instance()
{
    static my_class single;
    return single;
}

Или для такого нужно по другому реализовывать класс? Просто это самая простая реализация singleton класса, которую я нашёл


Ответы (1 шт):

Автор решения: Harry

Вариант первый — если все эти вызовы в одной области видимости, ввести переменную-ссылку наподобие

myclass& M = myclass::instance();

и дальше просто работать с M.method() и иже с ним.

Вариант второй — воспользоваться препроцессором, типа

#define M myclass::instance()
...
M.method();
→ Ссылка