【发布时间】:2020-10-19 16:18:34
【问题描述】:
我最近遇到了 std::any 类,它是在 C++17 中引入的,基于 boost::any。此类可以“持有任何类型的实例”,auto 会自动推导出变量的数据类型。
那么主要的区别是什么?有什么好处和坏处?
【问题讨论】:
-
它们不可比较,因为它们不可互换。没有优点和缺点。
auto对象的类型在编译期间被解析。std::any帮助的对象类型不是。 -
两个非常不同的东西。没有有意义的方法来比较它们。
-
我没有投反对票,但这个问题没有显示任何研究。即使是像谷歌搜索这样的最小研究也能回答它
-
std::any 与 auto 无关。它更类似于 std::variant。见C++ std::variant vs std::any