<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/70006>70006</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] std::is_invocable fails for __device__ operator()
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Pierre-vh
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/WMx5YdYEW
If an `operator()` is marked `__device__ `, `std::is_invocable` fails for that object. This works on nvcc.
I've tried to track this down a bit but I'm unable to. I believe it may have something to do with `declval` but I'm not sure.
Is this a clang issue, or is nvcc incorrect here?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsUs1u3DwMfBr5QsSQ6fV6ffAhX_YzkEOBHgoEOS30Q9tqZCuQaKfp0xfaBEhS9CKCEMkZckal5KaVqBfNf6I5F2rjOcT-u6MY6WafCx3saz8zPydR3wocBA5TsDp4LkOcBA6_BQ4P3341j_bx_wchz0Levr33I6gVxFGGZ4qKQxR4EtiJowSXYFHxiWz-vlws7c7Q5ZIzgXc5JLYZr7516eLWPRilPeXWUTmfYAwReFYMQf8kwyX8mF2ClxCfEoQV1t2Y8p2FwHYn4OjIAgfgqMwTcC634WUFBdox6I0hVy6wrRkJOJRwD5q8o53AMSzqFWa1E6SwEM9unfI0G-DF8ZwZWzJ-Vz5z_Ji2Boa0RSq_HCa94SswXq0TuJQ2ynuHmC-TyYNbTYiRDMNMkUQ9FLavbVd3qqC-Onanqq6arinm_tSdDHVVTR2ipLa1japIUqvqzh6asS1cjxLrSuJBtlVdVSVWx7Y5jE03droyp1EcJC3K-dL7fcmqFldGfSulPBZeafLp6g9EvU0CUeCdQLySz1lzLmKfe2_0NiVxkN4lTh_T2LG_GuytoznDP9X9JO0nS3w1T7FF_7cbHc-bLk1YBA4Z8z3cPMeQvSFwuK6TBA7Xjf4EAAD__x8L7vk">