gpt4 book ai didi

c++ - 对重载函数的模糊调用 - int 和 int&

转载 作者:太空狗 更新时间:2023-10-29 19:39:34 24 4
gpt4 key购买 nike

void g(int& a)
{
std::cout<<"int&\n";
}

void g(int a)
{
std::cout<<"int\n";
}

int main()
{
int a = 2;
g(a); //won't compile (at least under MSVC 2012)

std::cin.ignore();
}

这里有办法避免模棱两可的调用错误吗?类似 g( static_cast<int&>(a) ); 的东西

最佳答案

如果你可以转换,当然有一种方法可以消除调用的歧义:

g(const_cast<int const&>(a));

如果硬要调用引用版,解析就有点棘手了:

static_cast<void(*)(int&)>(g)(a);

关于c++ - 对重载函数的模糊调用 - int 和 int&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368474/

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