小编Pab*_*dhy的帖子

将NULL转换为long是不是很暧昧?

我正在尝试使用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)

c++ c++11

7
推荐指数
2
解决办法
215
查看次数

标签 统计

c++ ×1

c++11 ×1