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

    <tr>
        <th>Summary</th>
        <td>
            Clang disregards deleted copy constuctor
        </td>
    </tr>

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

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

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

<pre>
    https://godbolt.org/z/e6MPqErrh
```c++
#include <concepts>

struct Outcome;

struct Fn {
        Fn(Fn const&) = delete;

        template<typename F>
                requires (not std::same_as<Fn, std::remove_reference_t<F>>)
                     and std::invocable<F>
        Fn(F&& f);

        Outcome operator()() const;
};

struct Work {
        Fn fn;
};

int main() {
}
```
While declaring the implicit copy constructor for `Work` clang considers the templated constructor of `Fn` even though the latter declares a deleted copy constructor.
Using `libc++` this becomes apparent evaluating `std::invocable<const Fn&>` when `Outcome` is used before it is defined, triggering a compilation error.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9VMlu2zAQ_RrqQtTQYsnWQYfEjm9FeylyDEhxJLGlSIUcuUi_vkPZjrMYMaiFnHlv3iyydOqlGRCnwIo7lh9o9U5JZ3DlfE-7f3RB9f3n84P3A0v3LL1jVXpaLcvv4zqd5oW2rZkVcFbsWmdbmJBYH87m5R7Qzy3yHzO2bgRW3N8wHixnm1dDfbAs39IZMQZkecXymgLsuQID-JGC_BHGyYho2eHLBFaMwA9vZNS0PDzP2kPgRG0d8oAqpl_cBfJ-EqR6F8PurgYPozvCk4cOPFBqTxh9Ii2tvH5LzuNPWHUFa3t0rZAGLpj3uS1JVbyLPJ_SOZeKuwm8QOcJEP2W-7kmr5jN_nZFH53_86GmvLNf4LRFPgptz2GuUPJ8PwKn7eOgDVBHWiO8tj3HAbimNuhWI4mcXk5KoxjneUcXQaMqenACESQ6aAU-LOBLE9U7oOsijopGKDiCJVc398OCIG8Ef9ZAnRXnAVGf4q9Omn-FqJSojJaXQSZeHHTgEmLNiWSaiIyKAUdhZoFnxM3GLhF47GgVW0xUfweSSC-Xaacj4p4DaZJARaAaYTxR0GkLKs4bet33sNRQkOZx0pSXdpaD96Q8UU2h6qIWCWo00OyW0ikdPPTCq3Aj5yXlZPbm41eucZjlimLQxpjj5fFt8u43tPSlHXQIMwR6KauiypKhkW1XbmW3Leti2242FQmp8k6leSmLSq5lYoQEExpW3rNyn-gmT_M83aRFts7ybLsSa9FmoiqzdZ1tuk3F1inQmJlVDBz_bxLfLBrk3AcyGh0wXI0iBN1bgAu_mKn_vkE3SgfDCD5ZFDeL3P-gH3t5">