gpt4 book ai didi

c++ - `std::make_optional` 有什么意义

转载 作者:行者123 更新时间:2023-12-01 12:45:51 28 4
gpt4 key购买 nike

所有std::make_随着 Class template argument deduction 的引入,C++17 变得多余(除了 make_uniquemake_shared )。
那么 std::make_optional 的意义何在? ?据我所知,它的功能与 deduction guides for std::optional 完全相同。 .
有没有std::make_optional的场景比演绎指南更受欢迎?

最佳答案

区别的一个例子是当你想要(无论出于何种原因)制作一个包含可选项的可选项时:

#include <optional>
#include <type_traits>

int main()
{
auto inner=std::make_optional(325);
auto opt2=std::make_optional(inner); // makes std::optional<std::optional<int>>
auto opt3=std::optional(inner); // just a copy of inner
static_assert(std::is_same_v<decltype(opt2), std::optional<std::optional<int>>>);
static_assert(std::is_same_v<decltype(opt3), std::optional<int>>);
}

关于c++ - `std::make_optional` 有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62734897/

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