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 holler
para printf
. #definir es obvio ... ¿de otra manera?
Soluciones:
#define holler printf
void (*p)() = fn; //function pointer
void (&r)() = fn; //function reference
inline void g(){ f(); }
printf
esto. 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
. typedef
para 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.