问题标签 [argument-dependent-lookup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
189 浏览

c++ - 自定义容器迭代器是否保证 ADL 考虑命名空间标准?

我无意在实际代码中使用它。我保证。

std当函数参数是类型container::iterator并且container::iterator不是typedef内置类型时,标准是否保证将找到命名空间?

例如

换句话说,迭代器类是否可以定义在stdADL 不会考虑的命名空间中?

提前致谢。

0 投票
1 回答
622 浏览

c++ - 我应该在哪里为我的 std::pair 特化定义运算符 >>?

考虑以下程序:

这无法编译,因为一旦 ADL 在命名空间 std 中找到运算符 >>,它就不再考虑全局范围,无论在 std 中找到的运算符是否是可行的候选者。这是相当不方便的。如果我将运算符 >> 的声明放入命名空间 std(这在技术上是非法的),则代码可以按预期编译。point除了创建自己的类而不是将其定义为 std 命名空间中模板的特化之外,还有什么方法可以解决此问题?

提前致谢

0 投票
1 回答
637 浏览

air - AIR:Adobe Air Debug Launcher 停止工作...任何日志?

我在使用 AIR SDK 运行时 2.7 的 win 7 64 位家庭系列下使用 AIR 调试启动器(adl)时遇到问题。它有时会崩溃,我无法了解它是否是因为我的软件。有谁知道我怎样才能得到一些日志来知道它为什么崩溃?当它崩溃时,调试器正在消失,我不知道我的软件在哪里出错了......

我一直在 win7 下的不同 SDK 下测试我的软件,但我仍然有一些 adl 崩溃。该软件在winXP下运行正常。我想它与win7和AIR有关,但我怎样才能找到关于正在发生的事情的任何信息......?

感谢您的任何提示...


我已经能够找到 Windows 故障转储文件。然后我下载了windbg。并开始调试空气调试器启动器......但我卡住了......没有符号文件的调试不好......我想不能做更多了。该错误来自尝试将整数转换为 unicode 字符串,但我不知道为什么调用此函数,由谁以及何时调用...

有时它也不会崩溃。

0 投票
1 回答
554 浏览

c++ - GCC、Clang 和 IBM 在如何执行依赖于模板参数的名称查找方面存在分歧。哪一个是对的?

考虑一下我在 IBM 网站上找到的这个例子:

它会打印什么?

  • 我改编此示例的 IBM 文档(可在此处获得)说它将打印:

    这样做的理由是依赖于模板参数的名称查找是在 的实例化之前执行的i(),所以它找到h(double)但没有找到h(int)

  • 当我使用 GCC 4.4.1 编译它时,它会打印:

    GCC 似乎在编译其他所有内容后都在模板中查找与模板参数相关的名称,因此它同时找到h(double)and h(int),并且更喜欢后者。

  • 当我使用 Clang 2.8 编译它时,它无法编译。编译器错误是:

    Clang 似乎在声明模板的位置查找模板中依赖于模板参数的名称,因此它既没有找到也h(double)没有找到h(int)

哪一个是对的?

0 投票
2 回答
3266 浏览

c++ - 从元组中获取元素

可能重复:
为什么 ADL 找不到函数模板?

调用get似乎不会调用依赖于参数的查找:

g++ 4.6.0 说:

Visual Studio 2010 说:

为什么?

0 投票
4 回答
332 浏览

c++ - 如何在 ADL 期间使功能模板的优先级最低?

我有一个问题,我想提供一个函数的通用版本,该版本foo只能在绝对没有其他匹配的调用时应用。如何修改以下代码,使其与thanlast_resort::foo更匹配?我想找到一个解决方案,它不涉及修改 的定义 并且保留.derived::typebase::foobarlast_resort::foo

0 投票
4 回答
1307 浏览

c++ - 如何编写启用 ADL 的尾随返回类型或 noexcept 规范?

想象一下,我正在编写一些容器模板或其他东西。是时候专攻std::swap它了。作为一个好公民,我将通过执行以下操作来启用 ADL:

这是非常整洁的。直到我想添加一个异常规范。我swap的 isnoexcept只要交换为Tis noexcept。所以,我会写这样的东西:

问题是,swap其中需要发现 ADLswapstd::swap. 我该如何处理?

0 投票
4 回答
33207 浏览

c++ - 什么是“依赖于参数的查找”(又名 ADL,或“Koenig 查找”)?

关于什么是参数依赖查找有什么好的解释?许多人也将其称为 Koenig Lookup。

最好我想知道:

  • 为什么这是一件好事?
  • 为什么这是一件坏事?
  • 它是如何工作的?
0 投票
1 回答
699 浏览

linux - AIR Linux - ADT 无法加载 AIR 运行时

我刚刚将 air-sdk 添加到 ubuntu,并且 adl 正在工作,但是当我尝试使用 adt 时,我有这个:

无法加载 AIR 运行时

我能做什么?

我需要 adt 来制作从 .air 文件到 .dbm 的本地安装程序

“adt -package -target 本机 my-app-name.dbm my-app-name.air”

在我更改 air-sdk 之前,它总是像伤害一样工作!

提前致谢

0 投票
3 回答
1509 浏览

c++ - 模板的合格和不合格名称查找的不同行为

这段代码应该如何表现?如果我在函数中使用限定名,它会调用通用函数而忽略我的重载call_read()如果我使用非限定名称,它首先调用重载,然后调用通用版本。有什么不同?它是 GCC 中的错误吗?

我还注意到它对基本类型的工作方式不同。见下面的代码

它应该调用两次重载函数,但事实并非如此。在此处查看结果 http://codepad.org/iFOOFD52