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

    <tr>
        <th>Summary</th>
        <td>
            [cppcoreguidelines-special-member-functions] Add option to relax this check for specific parent types
        </td>
    </tr>

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

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

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

<pre>
    [cppcoreguidelines-special-member-functions](https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/special-member-functions.html) warns, when a super class explicitly deletes copy or move constructor / assignment operators.

But conceptually this is only useful, when any definition will change the set between super class and child.

This would allow writing code like this: 

```
class MyRAII : private utl::no_copy, private utl::no_move {
~MyRAII(){ ptr->close();}
Data* ptr{};
}
```

Possible options are:
`AllowMissingForUnchangedBetweenDerivedAndBase` => generally allows for bases
`AllowMissingForUnchangedFromBase` => only allows for specific bases e.g. `"utl::no_move"`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVFFvmzAQ_jXwcgoikEB44IEsjdSHStO0PU_GPsCrsZFtmubf7wxp11adpkmI5M533333nY_WiGsd7Y98mrix2M9SoJIa3cZNyCVTmxHHFu2mmzX30mgX7U9Rdhi8n1yUN1F2pocrpvtEqacxMbYnBz57y14ONl6KazAG5I8u_PlYjHx_K5cMflRRVsGFWSqefYHLgBoYuHlCC1TAOcDnSUkuvboCIaJHB9xMVzAWRvOEZGjn7cw9OagWUI7s9YjagyEURn6XROkpSpv1fZx9SOI4-ZkpgvWDdECP0WTMDrtZ_eGiQ9lOahkYw0UqBXygxpHSEBx6aNFfkELfkmZaUJhU4l3l76HQxcxKABU2F7hYgtU90REISj7iwoWkh7dpUZHensVcKzxcvzX39xBiJyufmEeYvQpTyxttfgaJQhOfnS2yReXxhl7erVg0eZoF-WHydhPld1wZhzdvfozK05pwYp7G34SoAELu_BXq9Cnj9f3V0GRahTSWZfrALAZOLxlNkORBUpDuz8b-0KvO4rjqe0JqBUWjxZERrSKl3qn0HfSoacxhkIuoDjq6CS3FuH9Cn60ZP6Atl-AN0HJ3O8lXRMCkTyA0lmUfJSUXHcRYb4tiu9tVu0MVizoXVV6x2NMFxv9eRmiEuMkF3oBFxZ7X67rs23uCE-lJl95fJ3TxbFX9fo976Ye5TbgZyQjrfPvZTNb8Qu7JJIHmZWH3ZV7s46FusWxFWha84ml2KFlRct4duqqt2GGPZRor1qJyoS9iG8s6S7MsPWT7bbkjBZKuSquqLctKFNtUsH20S3FkUr1-TmJbLxzauXd0qKTz7s_husqIL_hs9oOx9RnbFuOFbL0w_Q1hWpwn">