我定义了一个函数:
void myfunc(size_t param1, size_t param2){
...
}
它工作正常。但是当我尝试重载此功能时
void myfunc(unsigned long param1, unsigned long param2){
...
}
无法使用以下消息进行编译: 错误:myfunc(unsigned long param1,unsigned long param2)无法重载。
如果没有staic_cast输入参数size_t?
,如何解决这个问题谢谢!
答案 0 :(得分:3)
听起来像size_t和unsigned long在你的系统上是相同的类型;编译器抱怨你有两个相同的功能。此外,使用多个数字类型进行重载通常是一个坏主意,因为编译器可能无法识别由于投射可能性而导致的过载。请尝试使用模板:
template <T>
void myfunc(T param1, T param2){
...
}