#include <map>

struct Foo
{
    Foo () {};

    Foo (const Foo &) = delete;
    Foo & operator = (const Foo &) = delete;

    Foo (Foo &&) {}
    Foo & operator = (Foo &&) {return *this;}
};

int main ()
{
    std::map<int, Foo> m;

    m.insert (std::make_pair (123, Foo ()));
}