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");
我知道// clang-format off
明确不格式化块,但是是否有一组配置规则可使其对此进行合理的设置?
[不确定是否仅通过配置.clang-format
选项即可处理。但是,对于boost::program_options
语法,您仍然可以做一些事情。除了链接operator()
,您还可以创建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");
现在,即使clang-format破坏了您的格式,我相信它看起来也会比以前更好。如果这对您来说不够好,而格式化却使您不胜其烦,那么建议您定义一些函数或任何可以缩短这些行的方法(在我们的项目中,我们获得了ConfigField结构的向量,其中包含value_semantic,名称等,以及我们通过调用add_options对其进行迭代-它看起来更短)。
恐怕没有其他方法。
BTW:是的,这是一个老问题,但是没有答案,我们最近也遇到了类似的问题。