boost库anyany_cast和lexical_cast
Posted Charmve
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了boost库anyany_cast和lexical_cast相关的知识,希望对你有一定的参考价值。
any
类型:类
场景:存放任意类型
使用:boost::any val;
any_cast
注意:any_cast非但不是强转,并且类型必须完全匹配
类型:模板函数
作用:取出any对象中存放的数据
形式:
ValueType * any_cast(any * operand)
inline const ValueType * any_cast(const any * operand)
ValueType any_cast(any & operand)
inline ValueType any_cast(const any & operand)
失败:bad_any_cast();
lexical_cast
作用:强制转换,主要用于基本数据类型与string类之间的转换
失败:bad_lexical_cast();
#define _SCL_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <vector>
#include <string>
#include <boost/algorithm/string/split.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/any.hpp>
using namespace std;
int main()
{
boost::any val = 100;
int x = boost::any_cast<int>(val); /* 取出any中的数据 */
string i = boost::lexical_cast<string>(x); /* 将int转换为string */
try
{
double d = boost::lexical_cast<double>(i); /* 将string转换为double */
}
catch(bad_lexical_cast &e)
{
cout << e.what() <<endl;
}
cin.get();
return 0;
}
点赞关注!
以上是关于boost库anyany_cast和lexical_cast的主要内容,如果未能解决你的问题,请参考以下文章
一起学习Boost标准库--Boost.texical_cast&format库
boost::filesystem::path::lexically_normal: 这是不正确的行为吗?
boost::lexical_cast int 用零填充字符串
boost::lexical_cast<> 的语言环境不变保证