我正在尝试使用NULL与nullptr的用法.由于NULL可以转换为整数类型,因此下面的示例应该显示模糊性,但它不是!!
它显示了模糊的候选编译错误,如果它是unsigned long,而不是signed long.
任何人都可以解释为什么!!
#include <iostream>
using namespace std;
// NOTE:
// "long" or "signed long" is not showing ambiguous candidates
// but "unsigned long" does
void func(long st) {
cout << "overload func\n";
}
void func(int* ptr) {
cout << "integer pointer overload func\n";
}
int main() {
func(NULL);
return 0;
}
Run Code Online (Sandbox Code Playgroud)