È facile creare un nuovo nome per un tipo, una variabile o uno spazio dei nomi. Ma come si assegna un nuovo nome a una funzione? Ad esempio, voglio usare il nome holler
per printf
. #define è ovvio ... in qualche altro modo?
Soluzioni:
#define holler printf
void (*p)() = fn; //function pointer
void (&r)() = fn; //function reference
inline void g(){ f(); }
printf
qui. Quello era solo un esempio. Il problema qui ha più a che fare con i limiti dell'inglese che con qualsiasi altra cosa. Ho un'unica funzione che serve allo scopo A e allo scopo B ma semplicemente non riesco a trovare un unico nome che serva a entrambi gli scopi qui.
T &a = b;
crea un nuovo nome per b
. typedef
per i tipi e namespace A=B;
per gli spazi dei nomi.
using BaseClass::BaseClassMethod
, e c'è using AliasType = Type;
, e c'è anche namespace AliasNamespace = Namespace;
. Quello che ci manca èusing AliasFunction = Function;
void (&NewName)(some_vector&, float, float, float, float) = OldName;
al mio prossimo check-in.