Как я могу сделать псевдоним для одноэлементной функции? - PullRequest
2 голосов
/ 05 сентября 2010

Я хотел бы сделать псевдоним в C ++ для вызова синглтона, поэтому вместо того, чтобы вызывать MYCLASS::GetInstance()->someFunction(); каждый раз, я мог бы вызывать просто someFunctionAlias(); в моем коде.

Ответы [ 4 ]

3 голосов
/ 05 сентября 2010

Используйте статическую функцию.

namespace ... {
    void someFunction() {
        MYCLASS::GetInstance()->someFunction();
    }
};

Edit: Извините, ребята, я написал static someFunction и имел в виду void someFunction.

1 голос
/ 05 сентября 2010

typedefs используются для псевдонимов типов, но не могут использоваться в качестве псевдонимов вызовов.

Функции (например, предложенные DeadMG) могут использоваться в качестве вызова «псевдоним».

PS. Поскольку это C ++, у вас есть много опций, указателей на функции, перегрузка оператора std :: tr1 :: function <> и препроцессор. Но в этом случае, безусловно, похоже, что простая функция была бы самым простым и лучшим решением.

0 голосов
/ 05 сентября 2010

вы можете сделать это #define someFunctionAlias MYCLASS::GetInstance()->someFunction()

0 голосов
/ 05 сентября 2010

Поиск указателей на функции.

Вы можете создать указатель на функцию и назначить ее для вашей длинной функции. Затем вы можете вызывать этот указатель на функцию, как обычную функцию, где бы ни была определена ваша переменная.

Указатели на функции могут сбивать с толку, но они часто используются в обратных вызовах API (то есть вы передаете функцию в качестве аргумента API, и API будет вызывать эту функцию, когда что-то случится (подумайте WndProc)).

Удачи.

...