你能帮我取回放入boost::variant
中的原始对象的类型名吗?
我有这样的东西
typedef boost::variant<macro,module> ref_var;
是否可以取回原始对象的类型名?在这种情况下(宏或模块)
我试图用它来获取它
typeid(v).name()
但它给了我既不是宏也不是模块的奇怪名称:
PN5boost7variantI5macro6moduleNS_6detail7variant5void_ES5_S5_S5_S5_S5_S5_S5_S5_S5_S5_S5_S5_S5_S5_S5_S5_S5_EE
你能帮忙吗?
最佳答案
variant::type()
返回变量内容的 std::type_info
。只是不要使用它来选择如何对变体采取行动——这最好由访问者完成。
关于c++ - 取回原始类型的 boost 变体变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794027/