argument-dependent-lookup相关内容

自定义容器是否具有免费的开始/结束功能?

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

基于范围的循环和ADL

C ++ 0x标准工作草案状态(第6.5.4节)以下关于在基于范围的for循环中隐含的begin()和end()调用: 'begin'和'end'用 参数相关的查找(3.4.2)查找。对于 来说,这个名称查找的目的是 namespace std是一个关联的 名称空间。 我读这个的方式,这意味着为begin()和end()调用设置的重载解析包括以下所有内容: $ ul 在 ..
发布时间:2018-01-24 21:41:08 C/C++开发

3.4.2来自n3290草稿的依赖于参数的名称查找

ISO草案n3290第3.4.2节第1段中的一点: 当 postfix-expression 在函数调用中是“非限定id”,可以搜索在通常的无限额查找期间未考虑的其他命名空间,并且在那些命名空间中,可以找到不另外可见的命名空间范围友元函数声明。对搜索的这些修改取决于参数的类型(以及模板模板参数,模板参数的命名空间)。 在这里他们说“搜索的这些修改取决于参数/模板模板参数的类型/模板参数 ..
发布时间:2016-11-06 00:06:38 C/C++开发

在C ++中函数/方法/模板名称解析的首选项是什么?

如果有多种可能性,C ++编译器如何决定调用哪个函数/方法? 在我的具体情况下,我有C ++运行时间的标准自由功能,我还有一个模板的自由变量,像这样: // C ++运行时库的定义(从memory.h) extern malloc(size_t s); extern void free(void * p); //我们自己的内存管理函数 extern void * OurM ..
发布时间:2016-10-30 00:34:20 C/C++开发

参数依赖查找只搜索命名空间或类吗?

我一直在阅读Josuttis的模板书,我一直在试图把我的头放在ADL。他说“ADL通过查找命名空间和类中的名称来继承,”与“调用参数的类型”相关。我只是试图看看它是如何工作查找类中的名称。我在下面举一个我的测试的例子。我看看它是如何在命名空间中查找名称。 class bryan_ns { public: class bryan { public: enum E {e1}; st ..
发布时间:2016-10-23 20:39:50 C/C++开发

iter_swap的要点是什么?

我只是想知道,为什么会有人这样写: std :: iter_swap(i,k); 而不是这个? std :: swap(* i,* k); //保存了几个击键!然后,我查看了 iter_swap 的实现 $ b swap 而不是 std :: swap ,因为我们已经在 namespace std 。这就引出了下一个问题: 为什么会有人这样写: ..
发布时间:2016-10-23 13:28:43 C/C++开发