问题标签 [ambiguity]

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 回答
1421 浏览

xsd - 如何将这个不确定的 XML Schema 重写为确定的?

为什么这是不确定的以及如何解决它?

这应该意味着它<activeyears>要么是空的,要么包含以任何<from><till>一个开头<from>但可以以任何一个结尾的序列。

0 投票
4 回答
853 浏览

c++ - 如何在 C++ 中使模棱两可的调用不同?

如何进行不同的调用?

编辑:这段代码可以用 g++ 和 MSVC 编译。

谢谢。

0 投票
2 回答
2193 浏览

c++ - 转发声明使用 enable_if 的函数:模糊调用

我在声明一个使用的函数时遇到了一些麻烦boost::enable_if:以下代码给了我一个编译器错误:

编译时,我收到“对 foo 的模糊调用”错误。根据 的定义enable_if,'type' typedef 对应于void条件为真时,所以据我所知,foo匹配的两个签名。为什么编译器认为它们不同,是否有正确的转发声明方法foo(最好不重复该enable_if部分)?

0 投票
1 回答
1363 浏览

c++ - 使用可变参数访问无参数模板函数的模糊重载

是的,标题可能会吓到婴儿,但实际上很简单。

我正在尝试存储一个指向专用模板函数的函数指针,即 boost::make_shared (boost 1.41),如图所示:

但是,它不会编译(GCC 4.4.1),因为 boost::make_shared 具有以下两个特化,编译器在这种情况下无法区分:

错误,供参考:

如果我注释掉非可变变量,代码编译得很好。

有谁知道解决像这样的两个无参数函数之间的歧义的正确语法?

0 投票
1 回答
1053 浏览

c++ - boost::intrusive_ptr 构造函数歧义使用类''this'指针

违规代码:

并像这样使用:

带有 boost 1.41 的 GCC (4.4.1) 在初始化 GetPointer() 的第一个(非常量)版本时会出现此错误:

对于我在 C++ 中不那么神秘的技能,我根本不明白为什么会有任何歧义。第 188 行和第 94 行的两个候选对象采用现有的 intrusive_ptr 右值引用,SharedObject::this当然不是。然而,最终的候选者是完美匹配的(bool 参数是可选的)。

有人愿意告诉我问题是什么吗?

编辑+回答:我终于意识到

this指 SharedObject 而 Pointer typedef 是 SomeClass。(这几乎就是巴特沃思立即指出的)。

因为我知道this它确实是 SomeClass,从 SharedObject 继承,所以 static_cast 使模板类运行起来。

0 投票
1 回答
138 浏览

c++ - C++ 我的第一个模板

好的,这里最好避免歧义?

使用交换调用也不起作用,因为它说无法解析它是“void swap(T &,T &)”、“void std::swap(_Ty &,_Ty &)”还是......

顺便说一句,itv 是一个向量<int>::iterator。

谢谢。

0 投票
3 回答
4868 浏览

c++ - 对象构造/转发函数声明歧义

Observation: the codes pasted below were tested only with GCC 4.4.1, and I'm only interested in them working with GCC.

你好,

我不只是几次偶然发现一个我不理解的对象构造语句,直到今天我才注意到它引入了哪些歧义。我将解释如何重现它,并想知道是否有办法修复它(允许 C++0x)。就这样吧。

假设有一个类的构造函数只接受一个参数,而这个参数的类型是另一个具有默认构造函数的类。例如:

如果我尝试Class在堆栈上构造一个类型的对象,我会感到模棱两可:

我说这是一个对象构造,但编译器坚持认为它是函数体内的前向声明。对于仍然不明白的你,这里有一个完整的例子:

So well, enough examples. Anyone can help me get around this without making anything too anti-idiomatic (I'm a library developer, and people like idiomatic libraries)?

-- edit

Never mind. This is a dupe of Most vexing parse: why doesn't A a(()); work?.

Thanks, sbi.

0 投票
6 回答
3495 浏览

java - Java 做一会儿,一会儿

当我运行此代码时,我可以期待什么行为:

它的行为会像:

或者:

还是完全出乎意料的事情?

我问这个问题是因为我认为这很模棱两可,对于其他搜索这个主题的人来说,并不是因为我懒得测试它。

0 投票
2 回答
1599 浏览

oop - 具有相同属性和方法的对象属于同一个类?

具有相同属性和方法的对象属于同一个类?

  1. 我不能声明两个具有相同方法和属性的相同类,将它们实例化并拥有“具有相同属性和方法的对象属于不同类”吗?

  2. 我不能声明一个类 A 和一个子类 B(类 A 的子类)都具有相同的方法和属性(并且不在类 B 上声明任何新属性或方法),实例化它们并具有“属于不同类的具有相同属性和方法的对象“?

这个问题与良好做法无关......它与标题上问题的逻辑值(真或假)有关。

0 投票
5 回答
1271 浏览

c# - 对于目标 C,C# 中的对象等价物是什么?

在c#中我可以声明object o;然后我可以分配o=(float)5.0;或者o="a string."Objective-C是否有等价物?我尝试使用id,但它不采用浮点或整数等原始类型。感谢您的帮助。