<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63733>63733</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Improve cppcoreguidelines-avoid-const-or-ref-data-members for uncopyable/immovable types
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Ashimaru
</td>
</tr>
</table>
<pre>
Currently types like:
class A
{
A(const A&) = delete;
A& operator=(const A&) = delete;
A(A&&) = delete;
A& operator=(A&&) = delete;
int& i;
const std::string str;
};
Will be marked as problematic by this check.
[C.12](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-constref) explicitly states that this rule applies only to types that are copyable/movable.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUUk2P1DAM_TXpJWrVSfp56GF2RoO4cuGcpJ42bNpEsTsw_x71g11ACMHFtWw_9_m9KEQ7zAAdK19YeU3UQqOP3RlHO6m4JNr3z-6yxAgzuSenZwDkzr4Ck2eWX1l-ROMUIv9Rql_25MxEY_yMxM9MVEy0nMkr78EBAZPvQxX3AaIiH5m8_iOm2dv_sfXvgD3amVagfSvvVJD69WB5Rop2HjhSfAfW19-WfLbOcQ18UvEVeq6Qh-i1g0mRNVw_OY0WuRnBvGYHrny5ZCfBypXnSBRw_Z24MXGz6E0I2WBpXHRmPRO3SwgXH-HDYntwdgb8c01-MulGP8J9PRq-BWeNXX1EUgTIaVS0k4mLA65CcBaQ-3m12h9ub0MqAjc-PJV2wMRt8o81O9gnfSf7VrYqge5UNU0tRFEXydiVVZ6be1XUpmlN3d4LXYFsRVOCBtWUOrGdyIXM67zOW1nIIqtMebqfTs2pblTf5oYVOUzKusy5x5T5OCQWcYGukrWUiVMaHG5vV4gZvvKtycQqZBK7FZPqZUBW5M4i4fsWsuSg-ziF6B_ATQjGRxjexEvVw9t-Vy_1MY1wT3tFKp1g0hCR333ky_yTInY6NNlVS5boul-NPBw0fmLithI5PmmI_gsY2rzGZXNzO-97AAAA__-KdSAW">