gpt4 book ai didi

c++ - std::piecewise_construct 语法如何工作?

转载 作者:可可西里 更新时间:2023-11-01 18:25:23 25 4
gpt4 key购买 nike

当与 std::map 一起使用时,我对 std::piecewise_construct 有点困惑。示例:

std::map<std::string, std::string> m;

// uses pair's piecewise constructor
m.emplace(std::piecewise_construct,
std::forward_as_tuple("c"),
std::forward_as_tuple(10, 'c'));

我不确定 emplace() 如何知道在使用 piecewise_construct 时如何以不同方式处理这种类型的构造。不应该是:std::piecewise_construct(std::forward_as_tuple("c"), std::forward_as_tuple(10, 'c'))?它是如何仅使用逗号工作的,我没有看到重载的逗号运算符或 emplace 的特殊重载来分段处理变量参数(如图所示 here )。

最佳答案

std::map::emplace使用传递给 emplace 的参数直接调用构造函数(转发)类型 std::map<std::string, std::string>::value_type (这是 std::pair<const std::string, std::string> 的类型定义)。

std::pair has the constructor taking std::piecewise_construct_t (the type of the std::piecewise_construct )

关于c++ - std::piecewise_construct 语法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com