È 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 hollerper printf. #define è ovvio ... in qualche altro modo?
Soluzioni:
#define holler printfvoid (*p)() = fn; //function pointervoid (&r)() = fn; //function referenceinline void g(){ f(); }
printfqui. 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. typedefper 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.