gpt4 book ai didi

c++ - 普通查找和隐藏

转载 作者:行者123 更新时间:2023-12-01 14:22:24 25 4
gpt4 key购买 nike

<分区>

以下程序编译( live demo ),但我不明白为什么。

namespace N {
struct S {};
}


void Foo(N::S);


namespace Lib {
template <class T>
void Call() { Foo(T{}); }

void Foo();
}


int main()
{
Lib::Call<N::S>();
}

不应该Lib::Foo隐藏::FooFooCall是一个依赖名称,依赖名称的评估应该推迟到模板的实例化。在这种情况下名称查找如何工作?

在命名空间 Lib Foo(N::S{})可以在声明void Foo();之前调用, 但不能在声明后调用,因为 Lib::Foo隐藏 ::Foo . Lib::Call<N::S>();在声明之后,所以绑定(bind)名称时 Foo到这里,隐藏应该生效了吧?

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