C++17引入了
此外,
std::variant
和std::any
,它们都能在一个对象下存储不同类型的值。对我来说,它们有些相似(它们是吗?)。此外,
std::variant
限制了除这个之外的输入类型。为什么我们应该优先选择使用更简单的std::any
而不是std::variant
呢?
std::variant
只能使用预定义的一组类型,而std::any
则可以与 任何类型 一起使用。哪个更好取决于您的用例。 - πάντα ῥεῖstd::any
的std::visit()
,在可能的情况下,这应该是更喜欢std::variant
的一个有效理由,以我个人看来。 - max66void*
和 union 之间的比较。 - Ayxan Haqverdili