boost学习之-Variant

用法:

1 他与c语言中的union相对应

2 通过模板参数定义可以支持的类型

3 通过boost::get<T>()进行访问

4 可通过boost::static_visitorboost::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);


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值