升压程序选项:对于终端来说描述太宽

phi*_*mue 4 c++ boost-program-options

我正在使用Boost Program Options来解析命令行参数(我不想错过它,因为它工作得很好).但是,我有一个问题:Boost程序选项提供了为每个选项分配描述的可能性.然后Boost提供了可能性

cout << program_options_description << endl

很好地显示帮助解释选项.然而,似乎是这些错误消息被调整到终端宽度为80的情况(我从这样的事实得出结论:对于80的宽度,线断开很好地设置).

如果我当前的终端有另一个宽度(特别是一个少于80列的宽度),由于终端自动换行,显示的帮助看起来非常不自然.

那么:Boost是否有可能自动将选项描述调整为当前终端宽度?

Jes*_*ood 10

所述options_description接受列的宽度作为参数.

options_description(const std::string &, unsigned = m_default_line_length, 
                      unsigned = m_default_line_length/2);
Run Code Online (Sandbox Code Playgroud)

我相信默认值是80 m_default_line_length.另外,请参阅此SO问题以获取Linux上的终端宽度,然后将其传递给构造函数.或者,如果您是Windows,则需要调用GetConsoleScreenBufferInfo.