5
您可以在C++中使用泛型类型(通过模板)的协方差吗?C++模板协方差
我已经找到了回答我的问题的this question,但是我已经问了两年了!尽管有人解释说在模板中C++中不存在协变性,但没有关于这个的解释!
你能帮我了解这个话题的新闻/解释吗?
您可以在C++中使用泛型类型(通过模板)的协方差吗?C++模板协方差
我已经找到了回答我的问题的this question,但是我已经问了两年了!尽管有人解释说在模板中C++中不存在协变性,但没有关于这个的解释!
你能帮我了解这个话题的新闻/解释吗?
鉴于前面提到的问题作为澄清设备,似乎你在问为什么T<Derived>
通常不是从T<Base>
派生的。
考虑T
= std::shared_ptr
。
你不希望能够做到这一点:
void foo(shared_ptr<Base>& p) { p.reset(new Derived2); }
auto main() -> int
{
shared_ptr<Derived1> p;
foo(p); // Oops, p now points to unrelated Derived2
}
您应该添加代码示例为你所说的“模板协”:链接的问题的答案仍然适用 – quantdev 2014-09-03 19:09:43
如果一些自称建设不是语言的一部分,那么“解释”能让你满意吗?是不是“它不存在”够了? – 2014-09-03 19:11:34
“In addiction ...”的错字,还是只是无法获得足够的编码?嗯... – WhozCraig 2014-09-03 19:19:54