std :: mutex的映射:当构造函数不带参数时如何调用emplace

时间:2014-12-19 11:41:46

标签: c++ c++11 mutex

我有一个std::map<int, std::mutex>,想要添加一个元素。由于std::mutex不可移动,我需要转到emplace,对吧?

我熟悉map.emplace(<key>, <constructorArgument>)语法,但是当构造函数不带参数时,它是如何工作的?

最小测试代码,包括不起作用的东西

#include <iostream>
#include <map>
#include <mutex>

int main()
{
    std::map<int, std::mutex> mm;
//    mm[3] = std::mutex();
//    mm.emplace(3, std::mutex());
//    mm.emplace(3, {});
//    mm.emplace(3, ());
//    mm.emplace(3);

    std::cout << mm.size() << " elements" << std::endl;
    return 0;
}

0 个答案:

没有答案