[boost]lexical_cast简介

函数声明:

template <typename Target, typename Source>
inline Target lexical_cast(const Source &;

lexical_cast将入参转换成和返回值相同类型,如果发生异常,则抛出boost::bad_lexical_cast的异常:

string s("1895x");
try
{
	int i = boost::lexical_cast<int>(s);
	cout<<i<<endl;
}
catch (boost::bad_lexical_cast& bad)
{
	cout<<bad.what()<<endl;
}	

关于lexical_cast的实现:

本质使用了ostream,这里也可以自己实现一个,比如:

namespace sr
{
	template<typename DestType,typename SrcType>
	DestType lexical_cast(SrcType src)
	{
		stringstream os;
		os<<src;

		DestType dest;
		os>>dest;	

		return dest;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值