unordered_map:使用哪个键(x.y,move(x))?

时间:2018-04-12 15:14:05

标签: c++ c++11

我的代码大致如此:

struct Foo {
    std::string str;
    //...
};

void foo(Foo&& val)
{
    std::unordered_map<std::string, Foo> m;
    m.emplace(val.str, move(val));
}

emplace调用是否在原始值为val的密钥处插入val.str的值,或者是否发生(未指定的)移动值{ {1}}用作密钥?

由于val.str的{​​{1}}是unordered_map,我认为可以归结为value_type成员可以安排的顺序问题。是否保证在std::pair之前发生std::pair或允许在.first之前分配.second的实施?

0 个答案:

没有答案