Assuming a C++ file with: ```cpp #include <vector> struct Marker { Marker(); }; struct Number { int num; Marker dummy; }; int main() { std::vector<Number> vec; vec.emplace_back(Number{.num = 2}); // vec.emplace_back(2); // C++20 } ``` Clang Tidy will print: ``` [<source>:14:22: warning: unnecessary temporary object created while calling emplace_back [modernize-use-emplace]] 14 | vec.emplace_back(Number{.num = 2}); | ^~~~~~~~~~~~~~~~ 1 warning generated. ``` This is wrong, when using C++17, because fixing the warning requires C++20. Godbolt: https://godbolt.org/z/xn1Y3xMYo