问题标签 [covariant]

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 投票
3 回答
686 浏览

c++ - C++ covariant return type error with multiple inheritance

I have the code which is equivalent to this one:

I got this errors:

and:

http://ideone.com/PAgTdX

I believe I could write something in class B or D to prevent A::foo from inheriting, but I don't know what. Maybe there is some feature to rename conflict names in C++?

PS> I can't use C++11, only good old C++98.

0 投票
0 回答
136 浏览

c++ - 将自类名称作为模板参数传递时 C++ 协变返回错误

我收到了这个错误:

在尝试针对此代码实例化C< int>时:

这是我的真实代码(http://ideone.com/lCw5OT)的模型,我不明白为什么我会得到协变返回错误,因为C< int>实际上是Tree< int, C< int>的孩子>这是ATree< int>的一个孩子!

我正在使用 C++98,可悲的是,不能使用 C++11 扩展(如果有帮助的话)。

我错过了什么?

0 投票
1 回答
78 浏览

c++ - C++协变返回类型应用程序

我想询问协变返回类型和可能的(非)应用程序。我以为我发现了一些新的设计模式,但遗憾的是它不起作用:(

让我们从一个例子开始:

知道为什么它不起作用吗?

PS我为糟糕的格式道歉

编辑:当然,如果我在主体中使用强制转换,它会正确调用 compute(D*)。

编辑#2:我尽量避免切换:)

0 投票
2 回答
110 浏览

java - java - 用协变类型覆盖变量

输出:

显然 main 方法中的两个 println 语句是不一样的。从类 SubCovariant 的 getObject 方法返回的新 H() 对象如何分配给 G 引用?

0 投票
3 回答
746 浏览

c++ - 具有 CRTP 可克隆类的无效协变类型

我正在尝试使用 CRTP 实现 Clonable 类。但是,我需要有一个具有纯虚拟克隆方法的抽象类,并被子类覆盖。为了实现这一点,我需要克隆函数返回一个协变返回类型。我在下面编写了这段代码,编译器对我大喊这个错误:

“B”类似乎是 AbstractClonable 的子类,甚至有两种方式!我该如何解决这个问题?非常感谢你。我尝试使用 clang 3.6 和 GCC 4.9.2

0 投票
4 回答
442 浏览

c# - 没有 I/O 的 await 开销是多少

C# 5 中异步模式的一个缺点是任务不是协变的,IE 没有ITask<out TResult>

我注意到我的开发人员经常这样做

来解决这个问题。

这个板条箱究竟会对性能产生什么影响?没有 I/O 或线程产量,它只会等待并将其转换为正确的协变,在这种情况下,异步框架将在幕后做什么?会有任何线程上下文切换吗?

编辑:更多信息,此代码不会编译

因为 Task 不是协变的,而是添加了 await ,它会将其转换为正确的 IEnumerable 而不是 ToListAsync 返回的 List

ConfigureAwait(false)域代码中的任何地方都不是一个可行的解决方案,但我肯定会将它用于我的低级方法,例如

0 投票
3 回答
1015 浏览

c# - 用于泛型继承的 C# 工厂

对于这个相当基本的问题,我深表歉意,但是,我找不到任何文档。也许是因为我不知道正确的术语。

班级结构:

我试图创建一个返回 C 的工厂方法,而整体返回类型必须是 A。不幸的是,这个实现会产生编译时错误,尽管继承结构似乎是完全协变的。

更具体地说,我正在尝试实现一个工厂,能够根据输入值生成所有三个类,而必须获得通用能力。

更新

我必须创建三个对象,如下所示。

0 投票
2 回答
9886 浏览

c# - 为什么 Resharper 使用此代码说“从字符串 [] 到对象 [] 的协变数组转换会导致写入操作时出现运行时异常”?

这段代码:

将 R# curmudgeon 变成类似抱怨,“从字符串 [] 到对象 [] 的协变数组转换可能导致写入操作时出现运行时异常”。

实际上,这段代码运行良好——组合框填充了月份值;Resharper 是关于什么的,我能做些什么来减轻它的疑虑?

如果只是通用列表可能包含错误数据,我不会担心 - 如果有问题,追踪问题很容易。

0 投票
1 回答
94 浏览

r - Covariance with colinear vectors

I'm trying to calculate the covariance of a matrix which has two colinear vectors. I have read that it was impossible with the "cov" function from R.

Does a different function exist on R to calculate the covariance of a matrix which has two colinear vectors (since it works on Matlab and Excel).

Thank you in advance for your answers

0 投票
1 回答
82 浏览

list - 为什么 scala List 可以在方法 += 中将协变类型作为参数

Scala List 声明为

将元素添加到 List 的方法声明为

由于类型 A 是协变的,为什么编译器没有抱怨,因为 A 出现在 +: 中的逆变位置?