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明确不要格式化一个块,但有没有一套配置规则可以让它做一些合理的事情呢?
不确定是否可以仅通过配置.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");
Run Code Online (Sandbox Code Playgroud)
现在,即使 clang-format 破坏了你的格式,我相信这看起来会比以前更好一些。如果它对你来说还不够好并且格式化是你的头疼,我建议定义一些函数或其他任何东西来缩短这些行(在我们的项目中,我们有包含 value_semantic、名称等的 ConfigField 结构向量,并且我们调用 add_options 迭代它 - 它看起来更短)。
恐怕没有其他办法了。
顺便说一句:是的,这是一个老问题,但没有答案,我们最近也遇到了类似的问题。