Как я присваиваю псевдоним имени функции в C++?

Легко создать новое название типа, переменной или пространства имен. Но как я присваиваю новое имя к функции? Например, я хочу использовать имя holler для printf. #define очевиден... какой-либо другой путь?

Решения:

  1. #define holler printf
  2. void (*p)() = fn; //function pointer
  3. void (&r)() = fn; //function reference
  4. inline void g(){ f(); }
92
задан Agnel Kurian 19 June 2010 в 19:39
поделиться

4 ответа

Используйте встроенную оболочку. Вы получаете оба API, но сохраняете единую реализацию.

7
ответ дан 24 November 2019 в 06:30
поделиться

Вы можете создать указатель на функцию или ссылку на функцию:

void fn()
{
}

//...

void (*p)() = fn;//function pointer
void (&r)() = fn;//function reference
34
ответ дан 24 November 2019 в 06:30
поделиться
typedef int (*printf_alias)(const char*, ...);
printf_alias holler = std::printf;

Если все будет хорошо.

21
ответ дан 24 November 2019 в 06:30
поделиться

int (*holler)(const char*, ...) = std::printf;

10
ответ дан 24 November 2019 в 06:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: