C#'s "的 C++ 等价物 ?."null 条件运算符

标签 c++ operators

<分区>

在 C# 中,有一个空条件运算符 ?。:

MyObject o = null;

o?.doSomeThing();

这意味着:

if(o != null)
    o.doSomeThing();

我想在 C++ 中有类似的东西:

MyObject* o = nullptr;

o?>doSomeThing(); // or o?->

如果这样写会很有用:

o?.getO()?.getO()?.doSomeThing();

所以我有两个问题:

  1. 今天我们使用宏来进行单行条件执行。在 C++14 中是否有一种不使用宏的简便方法?
  2. 是否有任何讨论或建议?我什么都没找到。

最佳答案

不,没有语法可以做到这一点,也没有办法创建所述语法。

同样,没有(据我所知)添加它的提议。

相反,您自己编写空检查,或者更好的是通过重构您的代码来减少可以为“空”的地方的数量,从而使您不需要它们.

关于C#'s "的 C++ 等价物 ?."null 条件运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58662944/

相关文章:

c - 如何从字符数组中提取运算符?

c++ - 谷歌测试 : how to EXPECT_EQ non printable ASCII values

c++ - Qt::如何降低 QSpinBox 中的文本

android - 将宽度和高度增加 2 倍后宽度缩小 openGL C++

c++ - 复制初始化和直接初始化有区别吗?

c++ - boost foreach 和运算符重载

javascript - 是否可以在 JavaScript 中创建自定义运算符?

c++ - C++中如何访问列表中的元素

Powershell -eq 运算符

java - 为什么递减循环比递增循环运行得快?