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

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] Check request: Avoid assigning `std::bind` capturing `this` to a field in a default-copyable class.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

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

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

<pre>
    
Needs a check that will do all the same as https://github.com/llvm/llvm-project/issues/120863, but will catch `std::bind` instead of C++11 lambda.

```
struct A {
   std::string content;
   std::function<void()> captured;

   A() {
    captured = std::bind(&A::perform, this); // INCORRECT
   }

   void perform() { std::cout << content << std::endl; }
};
```

```
struct A {
 std::string content;
   std::function<void()> captured;

   A() {
 captured = std::bind(&A::perform, this); // OK, see copy methods deleted below
   }
   
   A(const A&) = delete;
   A& operator=(const A&) = delete;

   void perform() { std::cout << content << std::endl; }
};
```

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8VF2L6zYQ_TXjl2GDLPkjefCD49xAKdwLS_-APiaxWsVKrfEu219fbCfZbSnsQy8LgigazTkzx6OjU_LngaiBcg_lIdMT93FsHA1_xVEKkZno3hoQ7Xcil1Cj7cn-gdxrxlcfArqIOgTknjDpC6FO2DNfE6gW5BHk8ey5n8zGxgvIYwgv95-n6xh_J8sgjz6liRLIYy7FtlIgOzTTDd9qtj1CJRK7GVO1xg8OKoF-SEzaYTxhB3IPcp_nGPTFOL0B0c6rErcl2sTjZBlbhHoPokXEB2Di0Q9ntHFgGhjUv-OnabDs4wCqe4negdyC3IH6hlZfeRrJrSlrVruG32ketxDUAf_ZxXy1ateDK42nOF7m5rn3aaHY46oh_vK9-_H8_K37bcWE-vAgnEvCR_Kd-53IxokRVAequ7d4__u4Q4MLC9uKWx9uHX3Q7xM5v0TMn6Hkj1_n80SENl7f8ELcR5fQUSAmh4ZCfP0o8rx51GLjkHjeVUtV6nDLe7Q5hzBeadQcR1CHT3O-9BtmrlFup3Y6oyavi3wnciHLrG8qKwyVorDbXBTbbW7qXaULZ2UpSlXX28w3UshSqFzJXKqi3NRC7ozJC6OcEdvSQCHoon3YzE97E8dztjzqJle5lCIL2lBIi8lIaYMezk_s3RtIOZvO2CyGYKZzgkIEnzi947DnsNjTh7TygN3iQyP9OVFiUC22i4irn80T-F-WsQ7QLbrMRiWQI2o8eQoO_YAaHZ30FPhpng9tAqENOqVNNo2h-R_Wtgrx0si_AwAA__94hpR_">