考虑重载:
void foo(int) {std::cout << "foo(int) called.\n";}
void foo(int*) {std::cout << "foo(int*) called.\n";}
void foo(char*) {std::cout << "foo(char*) called.\n";}
void foo(bool*) {std::cout << "foo(bool*) called.\n";}
虽然
foo(int{});
将调用第一个重载,在没有分配新的int *的情况下调用第二个重载的最干净的方法是什么?比
更好的东西foo(static_cast<int*>(nullptr));
我在这里错过了一个简单的语法吗?
答案 0 :(得分:1)
虽然foo(int*{})
不起作用,foo((int*){})
仅适用于某些编译器,但foo((int*)0)
可能是最短,最容易理解并保证可以正常工作的。{/ p>