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