3
我試圖值佈設成地圖像這樣:佈設成'的std :: unordered_map`用'的std :: pair`值
std::unordered_map<std::string, std::pair<std::string, std::string>> testmap;
testmap.emplace("a", "b", "c"));
這是不行的,因爲:
錯誤C2661: '的std ::對::對':沒有重載函數採用3個參數
我已經看了this answer和this answer,似乎李我需要將std::piecewise_construct
納入安置工作,才能使其發揮作用,但我不認爲我很清楚在這種情況下應該把它放在哪裏。嘗試像
testmap.emplace(std::piecewise_construct, "a", std::piecewise_construct, "b", "c"); // fails
testmap.emplace(std::piecewise_construct, "a", "b", "c"); // fails
testmap.emplace(std::piecewise_construct, "a", std::pair<std::string, std::string>(std::piecewise_construct, "b", "c")); // fails
有沒有辦法讓這些值可以emplace
?
我正在編譯msvc2013以防萬一。