gpt4 book ai didi

c++ - 标准库 `emplace` 函数是否使用 `std::in_place` 标签

转载 作者:行者123 更新时间:2023-12-03 11:15:00 26 4
gpt4 key购买 nike

我想知道 C++ 标准库 emplace 函数是否使用 std::in_place 标签(表示包含的对象应该就地构造)?因为 emplace 函数是在 c++11 中引入的,而 std::in_place 是在 c++17 中引入的。

最佳答案

emplace 及其同类的整个点 表示对象正在就地构建。不允许实现构建项目并将其复制/移动到其最终位置。

在构造函数中使用 in_place 的主要原因是构造函数必须使用重载解析来判断您打算调用哪个构造函数(对于 anyvariant,它们还指定要构造为模板参数的对象类型,因为您不能在模板参数推导之外向构造函数提供模板参数)。因此,如果你想在构造函数中有类似 push_back/emplace_back 的区别,你必须使用参数,而不是函数名。

关于c++ - 标准库 `emplace` 函数是否使用 `std::in_place` 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65454103/

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