gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:35 26 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/23834051/

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