增强词法<int>演员表

boost lexical cast <int> check

本文关键字:gt int lt 增强 词法      更新时间:2023-10-16

这应该很简单。我有一个函数,它遍历csv并基于逗号进行标记,并对标记进行处理。其中之一就是把它转换成整型。不幸的是,第一个标记可能并不总是int,所以当它不是int时,我希望将其设置为"5"。

目前:

t_tokenizer::iterator beg = tok.begin();
if(*beg! )   // something to check if it is an int...
{
    number =5;
}
else
{
    number = boost::lexical_cast<int>( *beg );
}

看到lexical_cast抛出失败…

try {
    number = boost::lexical_cast<int>(*beg);
}
catch(boost::bad_lexical_cast&) {
    number = 5;
}

我通常不喜欢这样使用异常,但这对我来说很有效:

try {
    number = boost::lexical_cast<int>(*beg);
} catch (boost::bad_lexical_cast) {
    number = 5;
}