<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/58988>58988</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Please implement the resolution of cwg2369
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ericniebler
</td>
</tr>
</table>
<pre>
https://cplusplus.github.io/CWG/issues/2369.html
The resolution of cwg2369 has been applied as a DR to the working draft and has been implemented in gcc since gcc 11.1.
*Example:*
```c++
template <typename T>
struct static_assert_integral {
static_assert(std::is_integral_v<T>);
using type = T;
};
struct fun {
template <typename T>
requires std::is_integral_v<T>
typename static_assert_integral<T>::type
operator()(T) {}
};
static_assert(!std::is_invocable_v<fun, float>); // error: static assertion failed:
// std::is_integral_v<T>
```
*Result*:
```
error: static assertion failed: std::is_integral_v<T>
```
*Expected:*
No error
*See:*
https://godbolt.org/z/YTxKjvsnG
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylVEtvnDAQ_jXmYhUZswvsgcMmm-ZQqarSlaqeImMP4NSLqW02aX99bfYFq6hJVWSwx57HN5-HqbT4VbbO9Rala0Q_-sF7Ndjwxo107VDFUvvd22_3_iutHcD6BU2zVdy6nUJkg8j68N22gA1YrQYndYd1jflzEzRxyyyuADrM-l5JENjLDG8esNPYeatnbX7IrsHCsNph1omLhdz1CnbQOW8lO9xwjq3sOIyrJImTeAoB0fXdCwsmYz7r2VlGDoMjehPGuIsxduANmAOM0lv3q4eO7QBvUXp31rDODNz5iTnJH5m1YNyj9JgawxRG-cUXnishWlgnApZ0Le3Z5HHvQ40R6AqlU-vBBh4CCo9mE1BcTlG-OYvX0Oqhu8LxdlbhMfBzkP7S8N9hTtyeXL1OxslgdBV0J6a6B8OcNp6UkDcttn4aUfvE3khyzimiyRzvXnNWKRgBeyoQvcW10sydKcaH4sZgjAeQro8u8cFlKNeaSQWjzyk___QcY7yDynMtXhXvA9hBuVC46XXVHsR34P-f-HcvPXB3oOH093zWR9bmql9h9o_Nm0ijRaWVi7VpvPTbv9-3L5-e9ra7n7qJoEyyrFgslkVGI1GmYpWuWOSkU1Ci5Q1XrGvQcoO_KGAWLs1g7Bqv9ppoMOqqox37GNc7Lyi1P00feqOffLrTxrYsVkURtSUjhNRpluaMFDUjVUFyka7yOhGCCAHLSLEKlA0gEaUdPOPRhV97uJEsKaE0SZJFkicJobFIF4zXmaC5IFUmMrQgsPMXFgccgaXIlCOkamisP1TSOns59Lcsmw5GToJ_NrhWmxKM5J0EX_gmGsOXI_w_-e619w">