我有一个类似malloc的函数:
void * MyMalloc(size_t size) { return malloc(size); }
现在,让我们把它用于char*类型;
char * charPointer = static_cast<char *>(MyMalloc(100));
如何摆脱演员阵容?
我可以这样做:
template<typename T> T MyMalloc(size_t size) {return static_cast<T>(MyMalloc(size));}
调用代码为:
char * charPointer = MyMalloc<char *>(100);
这看起来更好,但有没有办法让编译器为我做这件事?
与auto类似,但我对auto的理解是,auto是由返回/赋值类型决定的,而不是由调用者的需求决定的。
我希望调用代码看起来像是:
char * charPointer = MyMalloc(100);
当然,这样的代码是行不通的(我也不希望如此):
int val = MyMalloc(100);
我不确定这能不能做到,但这是可以做到的,我相信这里有人知道。
泰