2

为什么 std::pair 和 std::tuple 在为容器使用 std::scoped_allocator_adaptor 分配器时表现不同?

std::pair 失败:

std::vector<std::pair<std::string, std::string>,
 std::scoped_allocator_adaptor<std::allocator<std::pair<std::string, std::string>>>> v;
v.push_back(std::make_pair( "one", "two" ));    // <--- does not compile

而 std::tuple 工作

std::vector<std::tuple<std::string, std::string>,  
std::scoped_allocator_adaptor<std::allocator<std::tuple<std::string, std::string>>>> v2;
v2.push_back(std::make_tuple("one", "two"));     // <- no problem

这是否与 std::tuple 具有 uses_allocator 而 std_pair 没有的事实有关?

4

0 回答 0