Thật dễ dàng để tạo tên mới cho một kiểu, một biến hoặc một không gian tên. Nhưng làm cách nào để gán tên mới cho một hàm? Ví dụ, tôi muốn sử dụng tên holler
cho printf
. #define là hiển nhiên ... còn cách nào khác không?
Các giải pháp:
#define holler printf
void (*p)() = fn; //function pointer
void (&r)() = fn; //function reference
inline void g(){ f(); }
printf
ở đây. Đó chỉ là một ví dụ. Vấn đề ở đây liên quan nhiều đến hạn chế của tiếng Anh hơn bất cứ điều gì khác. Tôi có một chức năng duy nhất phục vụ mục đích A và mục đích B nhưng tôi chỉ đơn giản là không thể tìm thấy một tên duy nhất phục vụ cả hai mục đích ở đây.
T &a = b;
tạo một tên mới cho b
. typedef
cho các loại và namespace A=B;
cho không gian tên.
using BaseClass::BaseClassMethod
, và có using AliasType = Type;
, và có namespace AliasNamespace = Namespace;
. Những gì chúng tôi đang thiếu làusing AliasFunction = Function;
void (&NewName)(some_vector&, float, float, float, float) = OldName;
trong lần đăng ký tiếp theo của tôi.