ADL

2025
在 C++ 的世界里,有些特性如同空气,无处不在,默默地支撑着我们代码的优雅与简洁,但我们却很少去探究其背后的原理。std::cout << "Hello, World!"; 这行代码对于每个 C++ 开发者来说都再熟悉不过。但是,你是否曾停下来想过,operator<< 函数明明定义在 std 命名空间中,为什么我们在调用它时,并不需要写成 std::operator<<(std::cout, "Hello, World!"); 这种冗长繁琐的形式?