<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/60377>60377</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Clang][concepts] bug or feature? requires clause differs because of a pair of bracket
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          FeignClaims
      </td>
    </tr>
</table>

<pre>
    Like the example below, in order to help clang-format format requires clause correctly, I used to add a pair of bracket. Now I changed my style. When I tried to change my code, the unexpected error happened.

```cpp
#include <concepts>

template <typename T>
  requires std::integral<T>
struct Widget;

template <typename T>
  requires(std::integral<T>)  // error: Requires clause differs in template redeclaration
struct Widget {
  T value;
};

[[nodiscard]] auto main() -> int {
  Widget<int> widget{1};
  return widget.value;
}
```

I tested this with different compilers. It turns out:

- [error - x86_64 clang (trunk)](https://godbolt.org/z/vGYxjaWqe)
- [pass - x86_64 gcc (trunk)](https://godbolt.org/z/7bWjTvxGj)
- [error - x64 msvc v19.latest](https://godbolt.org/z/bWo3rj9x3)

Is this a bug or expected behaviour in standard?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVF1v6zYM_TXKCxHDkWrHfvBDk1xfFBj2MFyg2NMgS4ytVpZ8JTpN9-sHJWnSjw3YBgQxbJGHh4dHlDGa3iE2rNiwYreQMw0-NC2a3m2tNGNcdF6_Nr-YZwQaEPAox8kidGj9C-NbMA580BiAPAxoJ1BWun6592GUBJdHwJ-zCRjT4RwRlA8BFdnXhPAAc0Sd8qXWIGGSJoDfQxekekbK4Ff_Ag-gBul61DC-QqRXixk8DujgASiYc_o5IgUorzFBJ8azw-OEilADhuADDHKa0KHOWL5j-f3lv8zPPzVNly9cGKfsrBGY2CrvFE4Umfj2Po1wnKykUwi9TujkiPDjGgS3ziNpJu6ZuDeOsA_SMrG9BUYKsyJ4NLpHYmLzv2owXv1jFV4DMN4y3p5VYOIefvs0FW32ewwxjfRaM6BGZWWQZLz7G67A1ps3Hj_gIO2MN_rr3adWTi7bOK9NVDJoVuxYsQM5k4dRGsd4lYgumfgGxn3AflNmaxyl45fz-3qzel8laUFzcJfj7Cufj8N-z-0BCGNyCQ0mwouh4SIIOgLlx8lYDDGDB4JUIoKfKWn9DmIJrNicTbaEY1X-Ud6drwMwXlGY3TPjdWqaVwPRFFP6aSa91523lPnQM97-yXh7-P778Uk-_sSUcQOfZIw37F6p_4687h6ffhyO358-Il9pl3cwxoOCw6rOkgUi_Tvc7tGL8FQfxRX3oms8Kyqhm3vwAa7XscNBHoyfQ3JcJOl08oRoF7oRuha1XGCzKtdFXlQVLxdDsyp0USByrqu1rsS-wKqqZd0JVdbFKt8vTMNzLvKVyPMyX-dlVqLQai-qKq-LOyWR3eU4SmMzaw9jIr8wMc7YlLlYrxdWdmjj2y4MTQpadnMf2V1uTaR4SyND9rQ1t2m-JyNvrjui2L31ukdJc0Am2i878O22dahO737_dfct5mCbT8IbGuYuU35kvE10Lo_lFPwTKmK8PbUUGW9PXf0VAAD__2r01g8">