<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/78069>78069</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
CWG472 is not implemented
</td>
</tr>
<tr>
<th>Labels</th>
<td>
c++,
clang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Endilll
</td>
</tr>
</table>
<pre>
Richard suggested the following approach in https://github.com/llvm/llvm-project/pull/67948#issuecomment-1890010504:
> I think a rule even more similar to [class.protected] should be implemented: if we rely on a conversion from a class N to a class B, if N is a protected base class of B (if a public member of B would be a protected member of N), then additionally require that N is either C or a class derived from C (where C is the class granting access, as in [class.protected]).
>
> I'd suggest we implement that as a warning, given that the standard is clear and other implementers accept.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUUz2PpDgQ_TUmKQ0CA0MTEPTH9OmSCS65uLALqDtjs7bp1vz7lemdngk2WQkJ2fXxXtV7xhB4skS9aE6iuWS4xdn5_s1qNsZkg9Mf_T-sZvQawjZNFCJpiDPB6Ixxd7YT4Lp6h2oGtjDHuAZRHYW8CnmdOM7bkCu3CHk15vb5e1m9-49UFPK6bsYIeX1tu_ogZMUhbKTcspCNL-WhK4qyaIo6dSwuojiK6g3-hjiz_R8Q_GYI6EYWFucJAi9s0EN0IJqTMhhCvnoXSUXSorlAmN1mNAwEvKyGEghpUR2BR7gTeDIf4CwgKGdv5AM7C6N3S7pJ3eA99f48nIQ8p8p34AAITyQYMNCvHDfCCYQ88JgytsGwgoWWgfwjdP8k9L3-K-FdyC6hxJksoNYc2Vk05gM8_djYE8QZ44MBcZzJwxmcf1LU5PlG-jHEORG5z-QJzqkgqfhImzzauEupFIWQEDEkOX-7RiG7_KnGN1mEbJ8mSet87vhBEtOS7ugt2ykhTJyE20OJSYhodbIZB1CG0ANaDW6f6UstH3aOa8wz3Ve6qzrMqC_boikPTVnX2dyPOLaqHkpVy0KhHtXQqbauZK2bcigHlXEvC1kXZVlJWUlZ59hgqQ8tqqHUw2tXirqgBdnkyau581O227JvD8VrlxkcyIT9wUiphDztnxTynM4G7SSq4-idjWR1CjSXzPe77YdtCqIuDIcYvppHjob6879_1a1M01sXv_sz27zp__hd7YyDkNed9M8AAAD__yZxSkU">