Skip to content

several cases with unnecessary temporary objects not detected by modernize-use-emplace #79213

Open
@firewave

Description

@firewave
#include <map>
#include <utility>

void f()
{
    std::map<int, int> m;
    m.insert(std::make_pair(0, 0));
    m.insert(std::pair<int, int>(0, 0));
    m.emplace(std::pair<int, int>(0, 0));

    m.emplace(std::make_pair(0, 0));
}
<source>:11:15: warning: unnecessary temporary object created while calling emplace [modernize-use-emplace]
   11 |     m.emplace(std::make_pair(0, 0));
      |               ^~~~~~~~~~~~~~~    ~

https://godbolt.org/z/8MhYPv9qP

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions