gpt4 book ai didi

c++ - 在不分配新内存的情况下使用指针调用重载

转载 作者:行者123 更新时间:2023-11-28 06:22:21 25 4
gpt4 key购买 nike

考虑重载:

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));

我是不是漏掉了一个简单的语法?

最佳答案

虽然 foo(int*{}) 不起作用,并且 foo((int*){}) 仅适用于某些编译器,但 foo ((int*)0) 可能是最短、最容易理解并保证有效的。

关于c++ - 在不分配新内存的情况下使用指针调用重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com