Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ boost程序选项的叮当格式_C++_Boost Program Options_Clang Format - Fatal编程技术网

C++ boost程序选项的叮当格式

C++ boost程序选项的叮当格式,c++,boost-program-options,clang-format,C++,Boost Program Options,Clang Format,clangformat似乎把块弄得一团糟,如下所示: desc.add_options()("help", "output usage") ("inputDirectory", po::value<boost::filesystem::path>()->required(), "The input path") ("outputDirectory", po::value<boost::filesystem::path>()->requi

clangformat
似乎把块弄得一团糟,如下所示:

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");
desc.add_options()(“帮助”,“输出用法”)
(“inputDirectory”,po::value()->required(),“输入路径”)
(“outputDirectory”,po::value()->required(),“输出路径”);

我知道
//clangformat off
可以显式地不格式化块,但是有一组配置规则可以让它合理地使用它吗?

不确定您是否可以只通过配置
.clangformat
选项来处理它。但是,对于
boost::program\u options
语法,您仍然可以做一些事情。您可以创建
program\u options::options\u description
对象并在多行中添加选项,而不是链接
operator()

namespace po = boost::program_options;

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

namespace po=boost::program\u选项;
采购订单:选项描述说明;
描述添加选项()(“inputDirectory”,po::value()->required(),“输入路径”);
现在,即使铿锵格式破坏了您的格式,我相信这看起来会比以前好一点。如果它对您来说还不够好,而且格式化是您的难题,我建议您定义一些函数或任何东西来缩短这些行(在我们的项目中,我们有包含值、语义、名称等的ConfigField结构向量,我们通过调用add\u options对其进行迭代—看起来更短)

恐怕没有别的办法了


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

这不是一个解决方案,但是当使用“文件”样式选项来完成这段代码时,它相对不复杂。我不知道“文件”到底是什么意思,但可能值得与该页面的作者核实一下。仅供参考,我已经-在repo中没有
.clangu格式的
文件,但他们的网站上可能安装了一个几乎合适的文件。似乎
ColumnLimit:100
起到了作用。不确定这是否是你的答案。@krzaq不是真的-这只是因为我们在这里有点幸运。如果你把上限改为150,它会很奇怪地打破。我想你在这里运气不好。程序选项以()作为操作符链接在一起,这样就可以像格式化函数调用一样使用clang格式。也许你应该问自己“这是写下我的意图的最好/最干净的方式吗?”。考虑为输入/输出目录部分使用单独的变量。auto&&outUsage=desc.add_options()(“帮助”,“输出用法”);outUsage(“inputDirectory”…您可以通过在
desc.add_options()
示例中再添加一行来改进答案。读者将更快地看到您的意图。请提供向量解决方案的示例。