mmxingye

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

01 | C++ADL(依赖于参数的查询)

namespace MyNamespace
{
class MyClass {};
void doSomething(MyClass);
}
MyNamespace::MyClass obj; // global object
int main()
{
doSomething(obj); // Works Fine - MyNamespace::doSomething() is called.
}

在上面的示例中,既没有使用using声明也没有使用using指令,但是编译器仍然可以通过应用Koenig查找将正确的不合格名称doSomething()识别为在名称空间MyNamespace中声明的函数。

该算法告诉编译器不仅要查看本地作用域,还要查看包含参数类型的名称空间。因此,在上面的代码中,编译器发现对象obj(它是函数doSomething()的参数)属于命名空间MyNamespace。因此,它将查看该命名空间以找到doSomething()的声明。

posted on   独立树  阅读(20)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2022-04-10 10 | 到底应不应该返回对象?
2022-04-10 09 | 易用性改进 II:字面量、静态断言和成员函数说明符
点击右上角即可分享
微信分享提示