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()
示例中再添加一行来改进答案。读者将更快地看到您的意图。请提供向量解决方案的示例。