gpt4 book ai didi

c++ - C++合并模拟

转载 作者:行者123 更新时间:2023-12-02 09:56:48 27 4
gpt4 key购买 nike

在C#中,我可以使用语法var c = a ?? b接收除null以外的第一个变量(用于相同类型的可为空的变量)。这类似于transact-sql中的coallesce运算符DECLARE @c VARCHAR = COALESCE (@a, @b)。有没有办法用C++这样写?

最佳答案

C++中没有像这样的内置运算符。此外,在C++中,没有将变量设置为的一些非常常见的null值:整数,浮点数和 bool(boolean) 变量不能是null

我们确实有一个名为 std::optional 的特殊“词汇类型”,其中std::optional<T>可以容纳T类型的值或“empty” /“nullopt”值-与其他语言使用null的相似。

如果ab是可选的(相同类型),则可以编写:

auto c = a.value_or(b);

注意:以上内容适用于常见的非左值引用类型。另外,它会摆脱 optional<T>包装器,即您将无法为结果分配 nullopt

关于c++ - C++合并模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59435922/

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