<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/66890>66890</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-format] Reference alignment options not honored for templated struct decltype(auto) operator()
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vient
</td>
</tr>
</table>
<pre>
```console
$ cat test.cpp
template<typename T>
struct A {
decltype(auto) operator()(T& x) {
return x;
}
};
template<typename T>
struct B {
auto operator()(T& x) {
return x;
}
};
```
`clang-format-17 test.cpp` produces
```cpp
template <typename T> struct A {
decltype(auto) operator()(T & x) { return x; }
};
template <typename T> struct B {
auto operator()(T &x) { return x; }
};
```
Note that in A it produces `T & x`, in B `T &x`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykk8Fu4jwQx59mchmBnDEk5JADlI_jd1j1BYwzgFeOHdmTqn37VaDQ0t1qW20UKcqMx_P__-wxObtjYG5huYHltjCjnGJqnxwHKfaxe2mhUpfXxpCjZ1BbUGugBVojKJxlbofhEhXuB2-EQT_Iy8DB9IyPoP-7ZLOk0QquEerNJYKI2LH102KglRklAjUYB05GYgJaATVAq0egCp-n1F3p9CSWMQV8Bn1NQL191Vhvb9Fv6NvcN5lE_aMixE9EXdHefq034Tg7xNQbmZX1G95K4ZBiN1rOH2p_g48f3eGfwH8JO753-d7YVyB_quMO8Cd4p87faHwP8v8ojHIygi7gGp3c2CFU6uqqUkAP04rNLToFi67VXaMbU3BbVs2SVF2RLk6tNqa2h4b2HVteLVZWlyVzqbhc6sOSysK1pEirhlRZKkV6XtZNxV1pu0YZta8tLBT3xvm590_9PKZj4XIeua2qVaMKb_bs83kQid5fBCCaRjO1U9lsPx4zLJR3WfLbRuLEn4f4rnC5xR984MTBMhrvjqHnIBgHcTFkDFHwFENM3OEhJryeXHc9qb9eEizG5NuTyJBBr4F2QLujk9O4n9vYA-0mga-f2ZDiT7YCtDvbzkC7s_NfAQAA__8JRU_a">