我定义了一个函数:
void myfunc(size_t param1, size_t param2){
...
}
它工作正常。但是当我尝试重载此功能时
void myfunc(unsigned long param1, unsigned long param2){
...
}
它无法编译并显示以下消息:错误:myfunc(无符号长参数1,无符号长参数2)无法重载。
如何在不staic_cast输入参数的情况下解决此问题size_t?
谢谢!
听起来size_t和无符号长整型在您的系统上是同一类型;编译器抱怨您有两个相同的函数。此外,使用多个数字类型重载通常是一个坏主意,因为由于强制转换的可能性,编译器可能无法识别您想要的重载。请尝试改用模板:
template <T>
void myfunc(T param1, T param2){
...
}