我正在使用Boost Program Options来解析命令行参数(我不想错过它,因为它工作得很好)。但是,我有一个问题:Boost程序选项提供了为每个选项分配描述的可能性。然后Boost提供了
的可能性 cout << program_options_description << endl
很好地显示帮助解释选项。但是,似乎情况是这些错误消息被调整到终端宽度为80(我从这个事实得出结论,对于宽度为80,可以很好地设置换行符。)
如果我当前的终端有另一个宽度(特别是一个少于80列的宽度),由于终端自动换行,显示的帮助看起来非常不自然。
那么:Boost是否有可能自动将选项描述调整为当前终端宽度?
答案 0 :(得分:10)
options_description接受列宽作为参数。
options_description(const std::string &, unsigned = m_default_line_length,
unsigned = m_default_line_length/2);
我认为m_default_line_length
的默认值为80。另外,see this SO question获取linux上的终端宽度,然后将其传递给构造函数。或者,如果您是Windows,则需要致电GetConsoleScreenBufferInfo。