gpt4 book ai didi

c++ - Koenig 查找参数

转载 作者:太空狗 更新时间:2023-10-29 23:49:31 28 4
gpt4 key购买 nike

Koenig 查找参数的想法是一件坏事吗?

有了 ADL,我们有:

namespace foo
{
struct bar {};
void baz(bar);
}

baz(foo::bar());

为什么我们没有这样的东西:

namespace foo
{
struct bar {};
void baz(bar);
} // namespace foo

foo::baz(bar());

最佳答案

Is idea of Koenig lookup for arguments a bad thing?

绝对不是。它允许将非成员 API 放置在它所属的位置:与您的类型相同的命名空间;它不会强制用户在调用函数时了解命名空间。
想想写 sort(begin(vec), end(vec)); 相对于 std::sort(std::begin(vec), std::end (vec));

当您重载运算符时,它也是必须的。

And why we don't have something like:

namespace foo
{
struct bar {};
void baz(bar);
} // namespace foo

foo::baz(bar());

因为它比相反的更容易模棱两可。如果 foo::baz 在不同的命名空间中为 bar 重载怎么办?如果不完全限定它,您将无法使用其他 bar 调用它。

关于c++ - Koenig 查找参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40530953/

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