Utworzenie nowej nazwy dla typu, zmiennej lub przestrzeni nazw jest łatwe. Ale jak przypisać nową nazwę do funkcji? Na przykład chcę użyć nazwy hollerdla printf. #define jest oczywiste ... w inny sposób?
Rozwiązania:
#define holler printfvoid (*p)() = fn; //function pointervoid (&r)() = fn; //function referenceinline void g(){ f(); }
printf. To był tylko przykład. Problem tutaj bardziej dotyczy ograniczeń języka angielskiego niż czegokolwiek innego. Mam jedną funkcję służącą do celu A i celu B, ale po prostu nie mogę znaleźć tutaj jednej nazwy służącej do obu celów.
T &a = b;tworzy nową nazwę dla b. typedefdla typów i namespace A=B;dla przestrzeni nazw.
using BaseClass::BaseClassMethodi jest using AliasType = Type;i jest nawet namespace AliasNamespace = Namespace;. To, czego nam brakuje, tousing AliasFunction = Function;
void (&NewName)(some_vector&, float, float, float, float) = OldName;moim następnym zameldowaniem.