The first one has no `&` qualifier and is formatted correct. The second one adds `&` and clang-format gets confused, I don't think it's aware this is a function anymore. ```cpp struct S { template <class... Args> constexpr void f() requires(true && C<true, Args...>) { return; } template <class... Args> constexpr void f() & requires(true && C<true, Args...>) { return; } }; ``` The `const` and `const&` qualifiers are parsed correctly. `&&` is also incorrect. ```cpp struct S { template <class... Args> constexpr void f() const requires(true && C<true, Args...>) { return; } template <class... Args> constexpr void f() const& requires(true && C<true, Args...>) { return; } template <class... Args> constexpr void f() && requires(true && C<true, Args...>) { return; } }; ``` https://godbolt.org/z/qKTWec96e