<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/104434>104434</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy][C++20] False negative modernize-use-emplace when passing init list
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
chrchr-github
</td>
</tr>
</table>
<pre>
~~~c++
#include <string>
#include <vector>
struct S {
std::string s;
};
void f(std::string a) {
std::vector<S> v;
v.push_back({std::move(a)}); // no warning
}
~~~
https://godbolt.org/z/4jrj1M6hY
With C++20, `v.emplace_back(std::move(a));` should be used.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0UsFuozAQ_ZrhMgqCsSnkwKFJym1PPaz2tDJmAu46OLINVXvIt68gabOquhIaRhrem_eGp0Iw_chcQ7GD4pCoKQ7O13rwevCb3sRhapPWdW_15XLRQLvlyQ6QPQIJM2o7dYwg9iF6M_Ygnr4bzqyj8_fhWkP0k474jFDeGBERQ-xAPIJ4vBJiAPGxrzzc-7XOznR4BKq-ghTQ9j-0H1L2zyCecP5kxDk9T2H43Sr9B6iCcvcJObmZgaqFdNFAWxA7BGqAGhwdvio_LtY_Ra7N5XK5NkOM57AQrYDeda2zMXW-B2regRr54l_yHw_Dr-vnP00ccH-9M2VAe4SHbE75dLZK84e8b7WtwuAhwzC4yXbYMk6BuzTpatFtxVYlXOcliZKKqsySodaVPpa55Ep2lVRVlpfi2LbHLVcVsxQqMTVlJLMqL3KSkqpUSq2K7NgVLIUoywJkxidlbGrtfFpMJSaEies8k1LIxKqWbVijRaStGvtNNN0bEC1R8_WC2rRTH0Bm1oQY7jzRRLuG8h9YcYBid79NccBG2cA4cq-imRlPrmM_mnfeTIE3t5vh68Ajnpegjz2a0URcdiWTt_WXn7OmPdXuBNQsSm6vzdm7F9YRqFntBaDm5nCu6W8AAAD__2IT9zk">