【问题标题】:Is oneline namespaces on one line with clang-format possible?是否可以使用 clang 格式将单线命名空间放在一条线上?
【发布时间】:2021-08-05 20:02:25
【问题描述】:

有没有办法让 clang-format 将 oneline 命名空间放在一行上,如下所示?我需要做一些前向声明,我更喜欢这样写。

namespace One {
    namespace Two { class MyClassA; }
    namespace Two { typedef std::unique_ptr<MyClassA> MyClassAUPtr; }

    namespace Two { class MyClassB; }
    namespace Two { typedef std::unique_ptr<MyClassB> MyClassBUPtr; }

    namespace Three { class MyClassC; }
    namespace Three { typedef std::unique_ptr<MyClassC> MyClassCUPtr; }
}

【问题讨论】:

    标签: c++ llvm clang-format


    【解决方案1】:

    不,截至clang-format 13,没有这样的选项。

    【讨论】:

    • 对。是否可以使用具有 clang 格式的函数编写自定义正则表达式?我想我可以在这些行上关闭 clang-format ..
    • @TLoe 当然,如果你关闭 clang-format 并使用不同的格式化程序,一切皆有可能。
    • 我并不是要使用其他格式化程序,而是使用 clang-format 的 "// clang-format off" "// clang-format on" 功能并包装我的前向声明..另一个问题是 clang-format 是否有一个实现来编写自定义正则表达式以识别某些模式,然后对该代码进行操作,并且正常格式不会在该部分代码上运行。
    • 刚刚意识到可以从 c++17 编写命名空间 One::Two {} .. 然后我可能会对组织它有点不同感到高兴:) 离开 c++ 有一段时间了..
    • @TLoe 是的,你也可以使用更现代的using MyClassAUPtr = std::unique_ptr&lt;MyClassA&gt;; 来创建typedefs。
    猜你喜欢
    • 2021-11-11
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2012-08-01
    • 2011-09-29
    • 2017-02-13
    • 2013-06-10
    • 1970-01-01
    相关资源
    最近更新 更多