如何获取指向 boost::variant 存储的指针?
How to get a pointer to boost::variant's storage?
我有一个用例,我想处理boost::variant
中包含的元素而不考虑其类型。
有没有办法在不知道元素类型的情况下获取指向variant
数据的指针?
你可以写一个访问者来做这件事:
typedef boost::variant<T1,T2,T3> my_variant;
void foo(my_variant v) {
struct get_pointer: boost::static_visitor<void *> {
template<class T>
void *operator()(T &element) const
{
return &element
}
};
get_pointer vis;
void *data = boost::apply_visitor(vis, v);
}
相关文章:
- 存储指针值需要多少位
- 如何存储指针以功能模板,该模板将可呼叫对象作为其参数之一
- 为什么unique_ptr向量是存储指针的首选方法
- 我应该如何在Qt中存储指针
- 强制提升变体以存储指针
- 更好的是:存储对象与存储指针
- 在课堂上存储指针
- c++在存储指针元组时遇到问题
- 尝试学习boost::interactive Q3-在IC中存储指针时,我应该使用smart_pointer吗
- boost::numeric::ublas::矢量内部数据存储指针
- QList如何决定是存储指针还是存储项目本身
- 这些存储指针数组的方法之间有区别吗
- Boost属性树:如何在其中存储指针
- 在std::容器中选择存储值还是存储指针时的注意事项
- 在 std::vector 中存储指针会破坏连续内存存储的优势
- 设置不存储指针集合
- 在类中存储指针或对象
- 如何存储指针的矢量,包含不同的类型
- C++:字段对象可以在不存储指针的情况下知道其"parent"吗?
- 如何为在 std::map 中存储指针的模板类编写复制构造函数