问题标签 [ambiguous-call]
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++ - 为什么此 C++ 代码仅在 Microsoft 编译器上具有模棱两可的方法调用?
我正在尝试在 microsoft C++ 编译器 14.1 (Visual Studio 2017) 上编译一个库,但由于对类方法的不明确调用,我遇到了一个奇怪的错误。经过一些测试,我隔离了以下代码片段:
我得到以下输出:
1>c:\users\pmas\documents\visual studio
该代码在我看来完全合法,并且在 gcc、clang 和 icc 上编译得很好(并且表现也符合预期)。
经过一些额外的测试,我发现如果我在派生中避免使用 CRTP 模式,代码编译得很好DerivedState
:
任何人都可以解释这种差异吗?微软编译器不符合标准吗?
c++ - 为什么最负的 int 值会导致模棱两可的函数重载错误?
我正在学习 C++ 中的函数重载并遇到了这个问题:
据我了解,int
范围内给出的任何值(在我的情况下int
是 4 字节)都会调用display(int)
,并且此范围之外的任何值都将是模棱两可的(因为编译器无法决定调用哪个函数)。它对int
除最小值以外的所有值都有效,即-2147483648
编译失败并出现错误
重载的调用
display(long int)
不明确
但是对 a 取相同的值int
并打印该值给出2147483648
. 我真的对这种行为感到困惑。
为什么只有在传递最大负数时才会观察到这种行为?(如果 ashort
与-32768
- 事实上,在负数和正数具有相同二进制表示的任何情况下,行为是相同的)
使用的编译器:g++ (GCC) 4.8.5
haskell - 使用 DuplicateRecordFields 消除记录更新的歧义
我正在使用 DuplicateRecordFields (+OverloadedLabels) 扩展,我遇到了一种情况,我无法弄清楚如何在记录更新中消除歧义。
这是一个简化的示例:
有什么办法可以使这项工作?
haskell - 与 TypeApplications 一起使用 AllowAmbiguousTypes 有多危险?
AllowAmbiguousTypes
与扩展程序一起使用时,扩展程序有多危险TypeApplications
?
GHC 手册给出了以下模棱两可类型的示例:
AllowAmbiguousTypes
不使用以下消息时无法编译:
使用AllowAmbiguousTypes
,它可以正确编译。
但是,即使使用以下示例也无法编译AllowAmbiguousTypes
:
尝试编译时出现以下错误:
这可以通过启用TypeApplications
和编写它来编写,如下所示:
AllowAmbiguousTypes
听起来很吓人,但根据 GHC 手册中的描述,它似乎相当温和,尤其是与TypeApplications
.
这不会AllowAmbiguousTypes
导致运行时错误,对吧?
AllowAmbiguousTypes
和的这种组合TypeApplications
似乎也用于一些非常流行的包中,比如约束。
sql - 如果通过执行动态 SQL 命令在表中可用列,则选择列以返回值时的列名不明确
如果表中的列可用,我想返回一个列值,如果没有,则返回一个默认值,然后在连接两个表 SHAIN1 和 RIREKI14 时遇到 COLUMN_NAME 不明确错误。如果只从一个表中选择,则查询可以正常工作,但如果我加入两个表,我会遇到问题。
请帮帮我!
c++ - 使用 enable_if 解决多重继承歧义
我有一个事件源基类,它定义了一个添加侦听器的函数,我正在尝试使用模板参数来解决歧义。但这似乎不起作用 - 它总是使用第一个基类中的函数,然后抱怨模板参数不匹配:
为什么这不属于 SFINAE?
我知道我可以显式指定基类,但模板看起来比EventSource<Event1>::addListener(...)
.
c++ - 有没有办法摆脱这种歧义?
考虑这个(相当)简单的例子:
能解决这样的歧义吗?我们有两个类,每个类都定义了这样一个运算符重载,以将其转发到其内部类型(类由两个不同的人独立设计,另一个人试图在同一个应用程序中使用它们。)我看不到这样的方法可以根据其他运算符重新制定,例如,在这里放弃A
'sfriend operator<<
并尝试转换A
为int
;是没有用的 并且使用某种复杂的 SFINAE 来排除一些重载看起来仍然没有帮助。
c# - 将项目 .net 目标框架从 3.5 升级到 4.5 后日历中的 C# 错误
我有以下日历的 buildculture 功能:
此功能在 .net 3.5 版中仍然有效。但是在我升级到 .net 4.5 之后,出现以下行的错误Calendar originalCal = ci.Calendar
:Calendar is an ambiguous reference between system.windows.control.calendar and system globalization.calendar
.
我们如何解决这些问题?
swift - Swift 中的歧义引用
我引用了两个框架 [PDFGenerator 和 PDFKit],它们都包含一个名为 PDFPage 的对象。在 PDFGenerator 框架中,PDFPage 是一个枚举。在 PDFKit 框架中,PDFPage 是一个对象。当我尝试创建 PDFPage Enum 的实例时,出现错误:
在此上下文中,“PDFPage”对于类型查找不明确。
如何指定要实例化的 PDFPage?
下面的简化示例: