C++ 死循环在语言层面的检测
2024-10-18 20:21:39
英文概念
Infinite loop without side-effects
这个目前只有CLang实现了这个C++特色
#include <iostream> int 费马定理() {
const int MAX = ;
int a=,b=,c=;
// Endless loop with no side effects is UB
while () {
if (((a*a*a) == ((b*b*b)+(c*c*c)))) return ;
a++;
if (a>MAX) { a=; b++; }
if (b>MAX) { b=; c++; }
if (c>MAX) { c=;}
}
return ;
} int main() {
if (费马定理())
std::cout << "最后被否决了.\n";
else
std::cout << "最后没有被否决.\n";
}
这段代码最后是可以跳出来的,这是一个很好的特性,希望早日普及在所有编译器上。
参考:https://en.cppreference.com/w/cpp/language/ub
最新文章
- (十三)WebGIS中工具栏的设计之命令模式
- Word文档合并的一种实现
- 【PHP数组的使用】
- 我也要学C语言-第十九章:命令行参数
- 窗体DataGridView控件中按回车键时,单元格向下移动,如何能改成向右移动
- 多个github帐号的SSH key切换
- win平台检查内存泄露
- 在 linux 中利用samba访问windows的共享
- .net MVC 下载文件乱码问题解决方案
- aix 上搭建node.js 环境
- 一个供新手把玩的jQueryUI在线文档
- js代码细嚼慢咽
- 20165306 实验二 Java面向对象程序设计
- 解决电脑上PPT频繁刷新的问题
- 个人总结-----非贪心算法的图的m着色判断及优化问题
- Spring集成的Quartz 并发
- Java内存模型(JMM)以及 垃圾回收机制 小结
- [Git/Github] ubuntu 14.0 下github 配置
- 如何解决PHP里大量数据循环时内存耗尽的问题
- SVN 如何更新整个目录
热门文章
- [Swift]LeetCode7. 反转整数 | Reverse Integer
- LongAdder 测试
- Python内置函数(21)——filter
- Python内置函数(51)——property
- 关于ML.NET v0.8的发布说明
- asp.net mvc简单实现基于Razor的分页控件
- 《HelloGitHub月刊》第 11 期
- Connection open error . Connection Timeout Expired. The timeout period elapsed during the post-login phase.
- Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)
- kubernetes系列05—kubectl应用快速入门