<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">