Легко создать новое название типа, переменной или пространства имен. Но как я присваиваю новое имя к функции? Например, я хочу использовать имя holler
для printf
. #define очевиден... какой-либо другой путь?
Решения:
#define holler printf
void (*p)() = fn; //function pointer
void (&r)() = fn; //function reference
inline void g(){ f(); }
Используйте встроенную оболочку. Вы получаете оба API, но сохраняете единую реализацию.
Вы можете создать указатель на функцию или ссылку на функцию:
void fn()
{
}
//...
void (*p)() = fn;//function pointer
void (&r)() = fn;//function reference
typedef int (*printf_alias)(const char*, ...);
printf_alias holler = std::printf;
Если все будет хорошо.