问题标签 [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.

0 投票
1 回答
574 浏览

c++ - 为什么此 C++ 代码仅在 Microsoft 编译器上具有模棱两可的方法调用?

我正在尝试在 microsoft C++ 编译器 14.1 (Visual Studio 2017) 上编译一个库,但由于对类方法的不明确调用,我遇到了一个奇怪的错误。经过一些测试,我隔离了以下代码片段:

我得到以下输出:

1>c:\users\pmas\documents\visual studio

该代码在我看来完全合法,并且在 gcc、clang 和 icc 上编译得很好(并且表现也符合预期)。

经过一些额外的测试,我发现如果我在派生中避免使用 CRTP 模式,代码编译得很好DerivedState

任何人都可以解释这种差异吗?微软编译器不符合标准吗?

0 投票
3 回答
5264 浏览

c++ - 为什么最负的 int 值会导致模棱两可的函数重载错误?

我正在学习 C++ 中的函数重载并遇到了这个问题:

据我了解,int范围内给出的任何值(在我的情况下int是 4 字节)都会调用display(int),并且此范围之外的任何值都将是模棱两可的(因为编译器无法决定调用哪个函数)。它对int除最小值以外的所有值都有效,即-2147483648编译失败并出现错误

重载的调用display(long int)不明确

但是对 a 取相同的值int并打印该值给出2147483648. 我真的对这种行为感到困惑。

为什么只有在传递最大负数时才会观察到这种行为?(如果 ashort-32768- 事实上,在负数和正数具有相同二进制表示的任何情况下,行为是相同的)

使用的编译器:g++ (GCC) 4.8.5

0 投票
3 回答
516 浏览

haskell - 使用 DuplicateRecordFields 消除记录更新的歧义

我正在使用 DuplicateRecordFields (+OverloadedLabels) 扩展,我遇到了一种情况,我无法弄清楚如何在记录更新中消除歧义。

这是一个简化的示例:

有什么办法可以使这项工作?

0 投票
1 回答
362 浏览

haskell - 与 TypeApplications 一起使用 AllowAmbiguousTypes 有多危险?

AllowAmbiguousTypes与扩展程序一起使用时,扩展程序有多危险TypeApplications

GHC 手册给出了以下模棱两可类型的示例:

AllowAmbiguousTypes不使用以下消息时无法编译:

使用AllowAmbiguousTypes,它可以正确编译。

但是,即使使用以下示例也无法编译AllowAmbiguousTypes

尝试编译时出现以下错误:

这可以通过启用TypeApplications和编写它来编写,如下所示:


AllowAmbiguousTypes听起来很吓人,但根据 GHC 手册中的描述,它似乎相当温和,尤其是与TypeApplications.

这不会AllowAmbiguousTypes导致运行时错误,对吧?

AllowAmbiguousTypes和的这种组合TypeApplications似乎也用于一些非常流行的包中,比如约束

0 投票
1 回答
308 浏览

sql - 如果通过执行动态 SQL 命令在表中可用列,则选择列以返回值时的列名不明确

如果表中的列可用,我想返回一个列值,如果没有,则返回一个默认值,然后在连接两个表 SHAIN1 和 RIREKI14 时遇到 COLUMN_NAME 不明确错误。如果只从一个表中选择,则查询可以正常工作,但如果我加入两个表,我会遇到问题。

请帮帮我!

0 投票
1 回答
59 浏览

c++ - 使用 enable_if 解决多重继承歧义

我有一个事件源基类,它定义了一个添加侦听器的函数,我正在尝试使用模板参数来解决歧义。但这似乎不起作用 - 它总是使用第一个基类中的函数,然后抱怨模板参数不匹配:

为什么这不属于 SFINAE?

我知道我可以显式指定基类,但模板看起来比EventSource<Event1>::addListener(...).

0 投票
1 回答
35 浏览

java - 向 Mockito.any() 提供类以使 verify() 调用明确的正确语法是什么?

Mockito.spy(...)在非 Mock 对象上使用来验证它的方法之一是否从未被调用。但是,有一个歧义,因为我只是在使用any(), any(),并且有两个带有两个参数的重载:

在此处输入图像描述

我对 Java 有点陌生,无法找出正确的方式来表达 Mockito 对我的要求。我认为我对 Java 中的反射概念没有很好的处理,例如Class, Function, lambdas 等之间的区别。

这是该方法的实际(非 Mockito)使用示例:

所以,我要验证的是第一个重载,Function<D, T>它的第二个参数是 a。我尝试过但不起作用的一些事情:

我怎样才能让它工作?

0 投票
2 回答
112 浏览

c++ - 有没有办法摆脱这种歧义?

考虑这个(相当)简单的例子:

能解决这样的歧义吗?我们有两个类,每个类都定义了这样一个运算符重载,以将其转发到其内部类型(类由两个不同的人独立设计,另一个人试图在同一个应用程序中使用它们。)我看不到这样的方法可以根据其他运算符重新制定,例如,在这里放弃A'sfriend operator<<并尝试转换Aint;是没有用的 并且使用某种复杂的 SFINAE 来排除一些重载看起来仍然没有帮助。

0 投票
2 回答
114 浏览

c# - 将项目 .net 目标框架从 3.5 升级到 4.5 后日历中的 C# 错误

我有以下日历的 buildculture 功能:

此功能在 .net 3.5 版中仍然有效。但是在我升级到 .net 4.5 之后,出现以下行的错误Calendar originalCal = ci.CalendarCalendar is an ambiguous reference between system.windows.control.calendar and system globalization.calendar.

我们如何解决这些问题?

0 投票
1 回答
647 浏览

swift - Swift 中的歧义引用

我引用了两个框架 [PDFGenerator 和 PDFKit],它们都包含一个名为 PDFPage 的对象。在 PDFGenerator 框架中,PDFPage 是一个枚举。在 PDFKit 框架中,PDFPage 是一个对象。当我尝试创建 PDFPage Enum 的实例时,出现错误:

在此上下文中,“PDFPage”对于类型查找不明确。

如何指定要实例化的 PDFPage?

下面的简化示例: