升级程序选项的clang格式

Dav*_*ria 13 c++ boost-program-options clang-format

clang-format 似乎从这样的块中弄得一团糟:

desc.add_options()("help", "output usage")
      ("inputDirectory", po::value<boost::filesystem::path>()->required(), "The input path")
      ("outputDirectory", po::value<boost::filesystem::path>()->required(), "The output path");
Run Code Online (Sandbox Code Playgroud)

我知道// clang-format off明确不要格式化一个块,但有没有一套配置规则可以让它做一些合理的事情呢?

Mat*_*usz 4

不确定是否可以仅通过配置.clang-format选项来处理它。但是,您仍然可以对语法做一些事情boost::program_optionsoperator()您可以创建program_options::options_description对象并在多行中添加选项,而不是链接:

namespace po = boost::program_options;

po::options_description desc;
desc.add_options()("inputDirectory", po::value<boost::filesystem::path>()->required(), "The input path");

Run Code Online (Sandbox Code Playgroud)

现在,即使 clang-format 破坏了你的格式,我相信这看起来会比以前更好一些。如果它对你来说还不够好并且格式化是你的头疼,我建议定义一些函数或其他任何东西来缩短这些行(在我们的项目中,我们有包含 value_semantic、名称等的 ConfigField 结构向量,并且我们调用 add_options 迭代它 - 它看起来更短)。

恐怕没有其他办法了。

顺便说一句:是的,这是一个老问题,但没有答案,我们最近也遇到了类似的问题。

  • 您可以通过在“desc.add_options()”示例中再添加一行来改进答案。读者会更快地看出你的意图。请提供您的矢量解决方案的示例。 (4认同)