c++ - 如果我故意不从非 void 函数返回会发生什么?
问题描述
我正在尝试使用允许我对不同类型的对象执行操作的表达式模板编写代码,并且我正在尝试自定义该行为。为此,如果我可以编写一个函数,例如:
double ReturnVal() {};
此代码产生编译器警告“函数返回非 void 中没有返回语句”。但是-该功能似乎可以满足我的要求。具体来说,如果我运行:
double x = 5;
x = ReturnVal();
我发现 x 仍然是 5。函数 ReturnVal() 没有改变它。这就是我希望代码执行的操作。
我知道这看起来很奇怪,但同样,这很有用,因为我正在尝试使用模板编写代码,并自定义操作符在类似(但不同)类型对象上操作时的行为。
所以,问题是——我可以依赖这种“x = ReturnVal()”不会改变 x 的行为吗?这就是我想要的,这就是我在测试中看到 gcc 所做的。但我很紧张,这可能是未定义的行为,我不能依赖它。
解决方案
推荐阅读
- bert-language-model - CamembertForSequenceClassification:训练不起作用
- javascript - 承诺链 .then .catch
- css - 如何在使用 *ngFor 创建的 ionic 3 组件中为 css 类变量动态赋值
- json - Flutter GetX 显示来自 JSON API 的数据
- javascript - Jquery禁用Asp.net核心中的选定选项无法正常工作
- ninja - RuntimeError: Ninja 需要加载 C++ 扩展
- c# - 在 VS Code 上创建 Dot Net 新控制台
- ethereum - 强制使用以太币发送交易
- talend - 在子作业的所有迭代成功完成后在主作业中运行组件
- php - 从数据库中查找数据并通过电子邮件发送数据