Es fácil crear un nuevo nombre para un tipo, una variable o un espacio de nombres. Pero, ¿cómo asigno un nuevo nombre a una función? Por ejemplo, quiero usar el nombre hollerpara printf. #definir es obvio ... ¿de otra manera?
Soluciones:
#define holler printfvoid (*p)() = fn; //function pointervoid (&r)() = fn; //function referenceinline void g(){ f(); }
printfesto. Eso fue solo un ejemplo. El problema aquí tiene más que ver con las limitaciones del inglés que con cualquier otra cosa. Tengo una sola función que sirve al propósito A y al propósito B, pero simplemente no puedo encontrar un nombre único que sirva para ambos propósitos aquí.
T &a = b;crea un nuevo nombre para b. typedefpara tipos y namespace A=B;espacios de nombres.
using BaseClass::BaseClassMethod, y hay using AliasType = Type;, e incluso hay namespace AliasNamespace = Namespace;. Lo que nos falta esusing AliasFunction = Function;
void (&NewName)(some_vector&, float, float, float, float) = OldName;en mi próxima visita.