Har*_*ent 5 c++ unsigned size-t long-integer
我定义了一个函数:
void myfunc(size_t param1, size_t param2){
...
}
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是当我尝试重载此功能时
void myfunc(unsigned long param1, unsigned long param2){
...
}
Run Code Online (Sandbox Code Playgroud)
它无法使用以下消息进行编译:错误:myfunc(unsigned long param1,unsigned long param2)无法重载.
如果没有staic_cast输入参数size_t,我该如何解决这个问题?
谢谢!
听起来 size_t 和 unsigned long 在您的系统上是相同的类型;编译器抱怨你有两个相同的函数。此外,使用多种数字类型重载通常是一个坏主意,因为由于转换的可能性,编译器可能无法识别您想要的重载。尝试使用模板代替:
template <T>
void myfunc(T param1, T param2){
...
}
Run Code Online (Sandbox Code Playgroud)