<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/100314>100314</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
CWG2813: extra move in calling of explicit object member function
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Fedr
</td>
</tr>
</table>
<pre>
This program
```
struct A {
A() {}
A(A&&) = delete;
void f(this A) {}
};
int main() {
A{}.f();
}
```
must be accepted per [CWG2813](https://cplusplus.github.io/CWG/issues/2813.html), and GCC does accept it, but not Clang unfortunately.
Online demo: https://gcc.godbolt.org/z/6x7PTsE4M
Related discussion: https://stackoverflow.com/q/78785176/7325599
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkUk1vnDAQ_TXDZRQEw-ceOJDdklPVqoqUs7EH1q2xt9hskv76CnbTbFLJBjPDe8_PfsJ7PVrmBop7KA6RWMLRzU3Hao56p16bx6P2eJrdOIsJkgMkLZTJdWyfPsyLDNgiVPeXCiJiC1QD7bZidfhYb4HKbewQsgMqNhwYshv02WmFA1AdVvX2M9G6ePv98tQ24CS0vVG9kdyg8XBpviP_0X00NC0-YM8opORTYIUnnhGK-_3TA9VpBsUBqD6GcPKQtUAdUCdPZvHrjEcdjksfawfU7Z8egDrt_cIeqFvB8TFMZt0E7VFYhQ_7PSrH_iqGOqydfgloXcC9EXbExQ5uDosVgc1rfOv6mzXaMiqeHGQtftzTKGU8OtU7E2I3j0DdH6CufKm-P_ov-ddbnh9sxGpUaS8X77Wz_9P5IOQvd-Z5MO45lm4C6n4DdVVd1UValesyo6LY7SLVZGqX7UTETVpRWidlnufRsSlqmSqSlSxzValC5UMqy0ENWUl9WjNFuqGE8qRaZ5YneSzTQUjFiUqGoqJyB3nCk9AmNuY8ra6i7XSbNEmyNI-M6Nn4LcpElp9x6wLRmuy5WUF3_TJ6yBOjffDvNEEHw83bDWct8kuYBU7uzKgtSmGMtiO6AfnlZLTUAV3_k2XAiaeeZxwWK4N2Nlpm03y6iEskLke2Kl5fd6fZrRS3GbkaOTf0NwAA__9sjg1w">