快速提问:
是否有可能获得std::variant运行时使用的基础类型?
我的第一个猜测是使用decltype()这样的:
std::variant<int, float> v;
v = 12;
std::vector<decltype(v)> vec;
Run Code Online (Sandbox Code Playgroud)
但我的向量的声明类型std::vector<std::variant<int, float>>不是std::vector<int>.
知道如何实现这一目标吗?:)
是否有可能在运行时获取std :: variant使用的基础类型?
是的,绝对是
知道如何实现这一目标吗?
您尝试实现与"在运行时获取std :: variant所使用的基础类型"非常不同的东西,作为std::vector运行时定义类型.这是一个非常不同的问题,在这种形式下绝对不可能,因为模板实例化在编译时发生.最近的解决方案是std::variant<std::vector<int>, std::vector<float>>根据变量的运行时信息使用和使用不同的向量v
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |