<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/104565>104565</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
`modernize-use-emplace` fix-it leads to compilation error
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
firewave
</td>
</tr>
</table>
<pre>
```
#include <list>
#include <string>
#include <vector>
struct S {
S(std::list<std::string> l)
: l(std::move(l))
{}
std::list<std::string> l;
};
void f()
{
std::list<std::string> l;
std::vector<S> v;
v.push_back({std::move(l)});
}
```
```
<source>:16:7: warning: use emplace_back instead of push_back [modernize-use-emplace]
16 | v.push_back({std::move(l)});
| ^~~~~~~~~~~ ~
| emplace_back(
```
https://godbolt.org/z/33981TM1n
Fixing it as suggested will lead the following error:
```
<source>:16:7: error: no matching member function for call to 'emplace_back' [clang-diagnostic-error]
16 | v.emplace_back({std::move(l)});
| ~~^~~~~~~~~~~~
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/15.0.0/../../../../include/c++/15.0.0/bits/stl_vector.h:1310:2: note: candidate template ignored: substitution failure: deduced incomplete pack <(no value)> for template parameter '_Args'
1303 | template<typename... _Args>
| ~~~~~
1304 | #if __cplusplus > 201402L
1305 | _GLIBCXX20_CONSTEXPR
1306 | reference
1307 | #else
1308 | void
1309 | #endif
1310 | emplace_back(_Args&&... __args);
| ^
```
https://godbolt.org/z/vz1shKrvf
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVluPozYU_jXOixVkbALhIQ9JZlJV3V7U2Yd9i4x9IG6NjWzDzM7D_PbKJCGXZqXtFhED9ncu_r6cA9x71RiAFVps0OJpxvtwsG5VKwevfIBZZeXXFcrJ6SRPiKwRZcoI3UvAiG218gGx50dLPjhlmm8sDiCCdZfFcfTB9SLgF4yKzXEGvyC69EEitkZsfQy2nZ6nCFgjWp4sTgdi6zh7MW7tAIguR-Q1OMYqnk7P3xWKnZKLZtP9OA5WSVwjupwiXHbyn1zHxCbAmavtSwQNF9CQdL0_7Csu_o4xi83DzRZPcbxO-nhzJ-vDSbb1tncColBsneaIrYvI7Ct3Zkx6jXsPGNpOcwFjJlgZH4BLbGs8pYfRYtNaCc6od5j3HuYnE7Q4U5_mGBXbUbsf2ddJ9ZMHjNHi-WM68Mc96DrjGOPblBxC6HyMTneI7horK6tDYl2D6O4d0R1j5TL9_Gtqro126k2ZBquAuce-bxrwASR-VVpjHckJB8C11dq-Rhw4FwVe_4gUZ1tsLG55EIfosIW2Aofr3oigrMG1dVhwrXGwGNHidvdFVEdobpq5VLwx1gcl5ke_kzz4VqB7_r5Po2j_8XEjzce5O-xsFxDdCdt2SoObw1unrQMXSRdi7g3v_MFGiFbVcRLR3dsy3-fZXCvTv80b0yO6SxcJSQiiuyT593BqQTEQopvxvBhUKnhEdz7o_bHmkkOkmqUEsTU9chwgXgU3UkkeAIeRiQBYNcY6iBxg31c-qNAfqedK9260kiB7ARIrE3epIQDuxuJgW0SXxuKB6x5Gxp5HySbnHXe8hQAuqrdfu8YjWpwLhxE2MntGI7YNXzswvIUkSfARfu6093Xy8LgSJrrPRnxs4DXe70Wnex9_OKZJSZoR-ukCXtw43__06efN9ssXSvbb3397-fz85Y8_L9j8BuugBgdGwAVQnCOD9lfTyxu72HUva-VkYqSqp_mU3Njc_X9PlOaI5iNlez4-P2ovaPH8P7rF8J76wy9uqGdyxWTJSj6DVVpQVpQly4rZYUUWhcxyLgpSZfUyz2uZF7WsSiLLfEnLaqZWlNCMLNOclKQkRVJxQUVa1XVaUpplgDICLVc60XpoY-yZ8r6HVUqyRb6YaV6B9uMrn9Jj2QclvyJK4yeAW0WredU3HmUkvqv8xU9QQUP8IHjcy3OCa_U2V2HscT42m2M587ESxo4y651e3bGkwqGvEmHbWNx6OF_mnbN_gYglP24g1uZpD8OK_hMAAP__HfB7nA">