无符号长 vs size_t会导致函数过载失败



我定义了一个函数:

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){
...
}

相关内容

  • 没有找到相关文章

最新更新