c++20 - 将 clang-format 与 c++20 概念一起使用
问题描述
我查看了 clang 格式样式选项https://clang.llvm.org/docs/ClangFormatStyleOptions.html但没有看到对 c++ 概念和要求子句的任何引用。通常我可以配置 clang-format 来做我想做的事,但我不知道如何让它来处理我的概念并很好地要求子句:
- 目前 clang-format 对我的概念执行此操作:
template <typename F, typename P, typename T>
concept Accumulate_Fn = Parser<P>&& std::invocable<F, T, parser_t<P>>&&
std::same_as<T, std::invoke_result_t<F, T, parser_t<P>>>;
但是我想将每个约束放在自己的行上(就像函数参数过长一样),这样结果看起来像:
template <typename F, typename P, typename T>
concept Accumulate_Fn = Parser<P> &&
std::invocable<F, T, parser_t<P>> &&
std::same_as<T, std::invoke_result_t<F, T, parser_t<P>>>;
- 对于带有 requires 子句的函数,clang-format 目前给了我:
template <Parser P1, Parser P2, typename T, Accumulate_Fn<P1, parser_t<P1>> F>
requires std::same_as<T, parser_t<P1>> constexpr Parser auto
separated_by(P1&& p1, P2&& p2, T&& init, F&& f)
但我想要更接近的东西:
template <Parser P1, Parser P2, typename T, Accumulate_Fn<P1, parser_t<P1>> F>
requires std::same_as<T, parser_t<P1>>
constexpr Parser auto separated_by(P1&& p1, P2&& p2, T&& init, F&& f)
是否有任何神奇的选择可以使它发挥作用?我目前使用的是 clang-format 10.0。
解决方案
截至 20 年 7 月,概念不被clang-format
. LLVM 跟踪器中有一个未解决的问题。
推荐阅读
- discord-jda - 成员列表仅返回 Discord Java 上的机器人
- java - 从路径中检索最后一级目录名称
- arrays - 当只有 1 项留在最简单的框中时,数组不会转置
- php - 带有插件 reactpress 的 WordPress 错误
- r - 如何强制 saveWidget 在 RStudio 之外创建单个文件?
- core-data - 使用观察对象更新核心数据实体
- python - Flutter websockets linux
- python - 在熊猫中以另一列为条件替换列的某些值
- python - 如何获取所有标签名称?
- javascript - 优化5个重复的javascript函数