argument-dependent-lookup相关内容

ADL的陷阱是什么?

前段时间我读了一篇文章,解释了参数依赖查找的几个陷阱,但我再也找不到了.这是关于获得对你不应该访问的东西的访问权或类似的东西.所以我想我会在这里问:ADL 的陷阱是什么? 解决方案 依赖于参数的查找存在很大的问题.例如,考虑以下实用程序: #include 命名空间实用程序{模板无效打印(T x){std::cout ..

自定义容器应该有免费的开始/结束功能吗?

当创建一个按常规规则运行的自定义容器类(即使用 STL 算法、使用行为良好的通用代码等)时,在 C++03 中实现迭代器支持和成员开始/结束函数. C++11 引入了两个新概念——基于范围的 for 循环和 std::begin/end.基于范围的 for 循环理解成员开始/结束函数,因此任何 C++03 容器都支持开箱即用的基于范围的 for.对于算法,推荐的方法(根据 Herb Sutt ..
发布时间:2022-01-10 14:39:18 C/C++开发

什么是“参数相关查找"?(又名 ADL,或“Koenig Lookup")?

关于什么是参数依赖查找有什么好的解释?许多人也称它为 Koenig Lookup. 最好我想知道: 为什么这是一件好事? 为什么这是件坏事? 它是如何工作的? 解决方案 Koenig Lookup 或 Argument Dependent Lookup,描述了编译器如何在 C++ 中查找非限定名称. C++11 标准 § 3.4.2/1 规定: 当函数调用 (5 ..
发布时间:2021-12-01 14:48:04 C/C++开发

Cxx-prettyprint(用于标准容器)在名称空间std内定义了其输出运算符-这是一种标准违规吗?

我已经成功使用 cxx-prettyprint:C ++容器Pretty-Printer 记录容器值. (另请参见 Pretty-print C ++ STL容器)即使在旧的VS-2005(VC8)编译器(带有prettyprint98.hpp标头),在使用VS2017-2019时也可以很好地工作,例如使容器值在单元测试中可打印. 在研究其与Boost.Format的互操作性时,令我惊讶的是 ..

ADL是否不查找静态成员函数?

这是来自跟进参数的跟进问题查找也只搜索名称空间或类吗?,@ DavidRodríguez在其中说:“ ADL会在类型的封闭名称空间中查找,并且还会在类型本身的内部内部”。我可能误会他想说的话,但是我正在尝试以下示例: struct foo { static无效bar(foo * z){} }; int main(){ foo * z; bar(z); } ..
发布时间:2020-06-06 19:33:22 C/C++开发