c++ - 是否可以从std::any使用std::reference_wrapper创建std::any?

标签 c++ c++17 rtti stdany

比方说,我有一个std::any在其中存储类型T。是否可以创建另一个包含std::any类型的std::reference_wrapper<const T>?喜欢

std::any original = std::string("Test string");
std::any reference;

// Magic here

auto ref = std::any_cast<std::reference_wrapper<const std::string>>(reference); // Works

最佳答案

这是不可能的,除非您知道确切的存储类型(请参见其他答案),或者可能的类型列表(在这种情况下,您可以switch而不是original.type())。

关于c++ - 是否可以从std::any使用std::reference_wrapper创建std::any?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59652121/

相关文章:

c++ - 什么是聚合和POD,它们为何/为什么特别?

c++ - C++ 最简单的 RTTI 实现是什么?

c++改组动态数组的内容?

c++ - 从模板类外部获取类型名 T

c++ - 使用声明 : one more bug of gcc and clang?

c++ - string_view 作为 const 引用的参数

c++ - 在 OO 设计中避免 RTTI

Delphi:相同类型的不同PTypeInfo

c++ - 您在 C++ 中看到的最酷的元编程示例是什么?

c++ - 在 vector 中推回后数字发生变化