Bir tür, değişken veya ad alanı için yeni bir ad oluşturmak kolaydır. Ancak bir işleve nasıl yeni bir ad atayabilirim? Örneğin, ben bir ad kullanmak istiyorum holleriçin printf. #define açık ... başka bir yol var mı?
Çözümler:
#define holler printfvoid (*p)() = fn; //function pointervoid (&r)() = fn; //function referenceinline void g(){ f(); }
printfBurada uğraşmıyorum . Bu sadece bir örnekti. Buradaki problem, her şeyden çok İngilizcenin sınırlamalarıyla ilgilidir. A ve B amacına hizmet eden tek bir işlevim var, ancak burada her iki amaca da hizmet eden tek bir ad bulamıyorum.
T &a = b;için yeni bir ad oluşturur b. typedeftürler ve namespace A=B;ad alanları için.
using BaseClass::BaseClassMethodve var using AliasType = Type;ve hatta var namespace AliasNamespace = Namespace;. Eksik olan şeyusing AliasFunction = Function;
void (&NewName)(some_vector&, float, float, float, float) = OldName;sonraki check