首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有使用类型擦除、子类型或多态性?

是否有使用类型擦除、子类型或多态性?
EN

Stack Overflow用户
提问于 2016-05-14 20:29:56
回答 1查看 987关注 0票数 1

在阅读关于提振任何实验性任意的文档时,

我没有看到任何提到类型擦除的地方。

我试图理解“类型擦除”的概念,因为它适用于C++。

说“任意”类型在存储其值时使用“类型擦除”是正确的吗?

说它在存储值时使用“多态”是正确的吗?

“类型擦除”是一种“多态”吗?

维基百科在多态上的文章也没有提到“类型擦除”。

它提到了“子类型”。“类型擦除”是一种“子类型”吗?

如果这个问题似乎指向不同的方向,我很抱歉。

总之,

“类型擦除”、“多形性”和“子类型”是如何与关系到C++?中的任何类型的。

EN

回答 1

Stack Overflow用户

发布于 2016-05-14 21:24:38

说“任意”类型在存储其值时使用“类型擦除”是正确的吗?

也许我和其他人对“类型擦除”有不同的定义,但是使用类型擦除来实现any对我来说没有任何意义。如果我们使用“通过单个泛型接口表示多种类型”的定义,那么anystd::function等就符合要求了。维基百科定义“确保程序的运行时执行不依赖于类型信息”在C++上下文中没有任何意义。泛型(类型擦除的原型示例)并不意味着“从语言中删除类型”。此外,std::any (可选)使用RTTI。所以我会找维基百科以外的其他地方。

说它在存储值时使用“多态”是正确的吗?

多态性是实现any的一种方法。不过,这绝不是必需的。据我所知,只有Boost使用多态性。见这个答案

助推

其他实现表明它不是必需的:

libc++

libstdc++

还请参阅和附带的问题

“类型擦除”是一种“多态”吗?

不是的。您认为模板、泛型和std::function都是多态的吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37231525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档