C++学习 boost学习之-Variant
来源:互联网 发布:中国4g网络协会 编辑:程序博客网 时间:2024/05/21 09:00
用法:
1 他与c语言中的union相对应
2 通过模板参数定义可以支持的类型
3 通过boost::get<T>()进行访问
4 可通过boost::static_visitor与boost::apply_visitor(visitor, variant).的组合来访问
总结,目前还没想到这个有什么很好的用处;
看例子体会用法:
class print_visitor : public boost::static_visitor<void> {
public:
void operator()(int i) const {
std::cout << "It's an int: " << i << '\n';
}
void operator()(std::string s) const {
std::cout << "It's a std::string: " << s << '\n';
}
void operator()(double d) const {
std::cout << "It's a double: " << d << '\n';
}
};
int main() {
boost::variant<int,std::string,double,char>
my_first_variant("Hello there!");
print_visitor v;
boost::apply_visitor(v,my_first_variant);
my_first_variant=12;
boost::apply_visitor(v,my_first_variant);
my_first_variant=1.1;
boost::apply_visitor(v,my_first_variant);
my_first_variant='a';
boost::apply_visitor(v,my_first_variant);
}
还有:
boost::variant<int,std::string,double> my_first_variant;
my_first_variant=24;
my_first_variant=2.52;
my_first_variant="Fabulous!";
my_first_variant=0;
assert(boost::get<int>(my_first_variant)==0);
- boost学习之-Variant
- C++学习 boost学习之-Variant
- C++boost库之variant使用
- C++boost库之variant使用
- 学习笔记之:Variant BOM
- Boost之Variant
- boost之variant使用
- boost之variant
- boost总结之variant
- Boost学习之Boost简介
- 【boost学习】之boost::bind
- boost学习之Boost.Lambda
- Boost::Variant
- boost::variant
- 学习boost之lexical_cast
- 学习boost之format
- 学习boost之filesystem
- boost学习之function
- GlassFish Components 组件介绍
- 反其道而行之——要什么
- css设置图片某个区域为文字区域(让两个div重合)
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
- 安装jdk之后cmd java 可以执行 javac 无法执行 执着的用%JAVA_HOME%
- C++学习 boost学习之-Variant
- .net编写客户端实现正方教务网登录,查询课表,查询考试等信息程序(Post,Get等)---潘尚
- BIRCH算法学习
- bool
- java一维数组的理解
- Nmap扫描原理与用法
- [Android]获取拍照完的图片的数据两种方式
- Java写的动画gif
- Linux下tomcat的操作