boost::options_description的问题
想试一下boost里的regex,结果编译执行第一个例子(grep.cpp)就有错......
查了一下是因为option描述信息太长,需要折行显示,在计算格式时,跌代器加法运算越界。
对应boost里的以下代码:
/* options_description.cpp */
namespace {
void format_paragraph(std::ostream& os,
std::string par,
unsigned first_column_width,
unsigned line_length)
{
... ...
string::const_iterator line_begin = par.begin();
const string::const_iterator par_end = par.end();
... ...
//下面这句出了问题
if (line_begin + (line_length - indent) > par_end)
{
line_end = par_end;
}
else
{
line_end = line_begin + (line_length - indent);
}
... ...
}
}
是boost的bug?还是编译器的问题?请高手解答。
boot 1.33.1
vc2005
[解决办法]
用错可能性远大于bug。
要么认真看Boost.Program_options的文档,要么先跳过。
这个库不是特别重要吧,建议跳过。
[解决办法]
我们在windows下用vc编译boost_1_33_1的程序遇到过不少问题
在linux/gcc下未发现此类问题