【发布时间】:2015-07-09 12:00:06
【问题描述】:
我定义了一个函数:
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,我该如何解决这个问题?
谢谢!
【问题讨论】:
-
您是要标记这个 C++ 吗?
-
这可能是因为
size_t在您的环境中被定义为unsigned long。 C/C++ 在这方面没有非常强大的类型系统。 -
无论如何这都是个坏主意,因为即使它有效,例如,每当您尝试将函数与
ints 一起使用时,都会出现模棱两可的调用错误。您能解释一下您要解决的问题吗? -
谢谢大家。实际上它通过了编译,但在链接阶段失败了,在这个阶段,一个宏调用了 myFunc()。
标签: c++ long-integer unsigned size-t