问题标签 [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.
c++ - 自定义容器迭代器是否保证 ADL 考虑命名空间标准?
我无意在实际代码中使用它。我保证。
std
当函数参数是类型container::iterator
并且container::iterator
不是typedef
内置类型时,标准是否保证将找到命名空间?
例如
换句话说,迭代器类是否可以定义在std
ADL 不会考虑的命名空间中?
提前致谢。
c++ - 我应该在哪里为我的 std::pair 特化定义运算符 >>?
考虑以下程序:
这无法编译,因为一旦 ADL 在命名空间 std 中找到运算符 >>,它就不再考虑全局范围,无论在 std 中找到的运算符是否是可行的候选者。这是相当不方便的。如果我将运算符 >> 的声明放入命名空间 std(这在技术上是非法的),则代码可以按预期编译。point
除了创建自己的类而不是将其定义为 std 命名空间中模板的特化之外,还有什么方法可以解决此问题?
提前致谢
air - AIR:Adobe Air Debug Launcher 停止工作...任何日志?
我在使用 AIR SDK 运行时 2.7 的 win 7 64 位家庭系列下使用 AIR 调试启动器(adl)时遇到问题。它有时会崩溃,我无法了解它是否是因为我的软件。有谁知道我怎样才能得到一些日志来知道它为什么崩溃?当它崩溃时,调试器正在消失,我不知道我的软件在哪里出错了......
我一直在 win7 下的不同 SDK 下测试我的软件,但我仍然有一些 adl 崩溃。该软件在winXP下运行正常。我想它与win7和AIR有关,但我怎样才能找到关于正在发生的事情的任何信息......?
感谢您的任何提示...
我已经能够找到 Windows 故障转储文件。然后我下载了windbg。并开始调试空气调试器启动器......但我卡住了......没有符号文件的调试不好......我想不能做更多了。该错误来自尝试将整数转换为 unicode 字符串,但我不知道为什么调用此函数,由谁以及何时调用...
有时它也不会崩溃。
c++ - GCC、Clang 和 IBM 在如何执行依赖于模板参数的名称查找方面存在分歧。哪一个是对的?
考虑一下我在 IBM 网站上找到的这个例子:
它会打印什么?
我改编此示例的 IBM 文档(可在此处获得)说它将打印:
这样做的理由是依赖于模板参数的名称查找是在 的实例化之前执行的
i()
,所以它找到h(double)
但没有找到h(int)
。当我使用 GCC 4.4.1 编译它时,它会打印:
GCC 似乎在编译其他所有内容后都在模板中查找与模板参数相关的名称,因此它同时找到
h(double)
andh(int)
,并且更喜欢后者。当我使用 Clang 2.8 编译它时,它无法编译。编译器错误是:
Clang 似乎在声明模板的位置查找模板中依赖于模板参数的名称,因此它既没有找到也
h(double)
没有找到h(int)
。
哪一个是对的?
c++ - 如何在 ADL 期间使功能模板的优先级最低?
我有一个问题,我想提供一个函数的通用版本,该版本foo
只能在绝对没有其他匹配的调用时应用。如何修改以下代码,使其与thanlast_resort::foo
更匹配?我想找到一个解决方案,它不涉及修改 的定义 并且保留.derived::type
base::foo
bar
last_resort::foo
c++ - 如何编写启用 ADL 的尾随返回类型或 noexcept 规范?
想象一下,我正在编写一些容器模板或其他东西。是时候专攻std::swap
它了。作为一个好公民,我将通过执行以下操作来启用 ADL:
这是非常整洁的。直到我想添加一个异常规范。我swap
的 isnoexcept
只要交换为T
is noexcept
。所以,我会写这样的东西:
问题是,swap
其中需要发现 ADLswap
或std::swap
. 我该如何处理?
c++ - 什么是“依赖于参数的查找”(又名 ADL,或“Koenig 查找”)?
关于什么是参数依赖查找有什么好的解释?许多人也将其称为 Koenig Lookup。
最好我想知道:
- 为什么这是一件好事?
- 为什么这是一件坏事?
- 它是如何工作的?
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 之前,它总是像伤害一样工作!
提前致谢
c++ - 模板的合格和不合格名称查找的不同行为
这段代码应该如何表现?如果我在函数中使用限定名,它会调用通用函数而忽略我的重载call_read()
;如果我使用非限定名称,它首先调用重载,然后调用通用版本。有什么不同?它是 GCC 中的错误吗?
我还注意到它对基本类型的工作方式不同。见下面的代码
它应该调用两次重载函数,但事实并非如此。在此处查看结果 http://codepad.org/iFOOFD52