gpt4 book ai didi

c++ - 带有 make_unique 和 emplace_back 的简单结构

转载 作者:太空狗 更新时间:2023-10-29 19:47:55 25 4
gpt4 key购买 nike

给定一个结构:

struct S {
int x;
int y;
}

为什么标准允许我们这样做:

std::vector<S> vec;
vec.emplace_back(1, 2);

但不允许这样做:

auto ptr = std::make_unique<S>(1, 2);

?

最佳答案

实际上两者都不起作用。

已决定 C++ std 中的 emplace 样式构造函数将使用 () 而不是 {} 来构造。没有强有力的选择它的理由(据我所知)。

emplace_altmake_unique_alt 可以添加到 std 中,它使用 {} 构造。 (当然应该取一个更好的名字)

所以简短的回答是“因为 std 这么说”。中等答案是“这是 std 做出的近乎任意的选择,其他地方也遵循以保持一致”。长答案将涉及到它发生的房间和重新访问的房间:这不是一个长答案。

关于c++ - 带有 make_unique 和 emplace_back 的简单结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38322961/

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