1
9
对。标准规定 不 要求,所以它可以做任何它想做的:
正如一个注释,这是一个未定义的行为,但它不一定是一个好的例子。在g++4.4.1上,它将拒绝使用以下命令进行编译:
因为post增量的结果不是左值。 |
2
3
基本上,是的,如果并且只有当这10条指令是同样可到达的。请考虑以下代码:
UB可以在编译时被检测到,并且该特定分支的代码生成可能导致无意义的代码。但是,不具备条件的跳转必须跳过所有这些并直接跳过结束语
(这个问题不是重复的,因为前面没有讨论运行时UB的编译时检测) |
3
2
一个特定的编译器(除非有错误)在遇到这样的结构时总是有相同的行为(绝对没有随机代码)(除非代码的上下文不同)。 实际上,“未定义的行为”意味着“不同的编译器处理事情的方式不同”。 如果你想知道“你的虚拟编译器仍然符合C++标准吗?”-我想答案是肯定的。 |
4
0
从标准草案/ http://www.kuzbass.ru:8086/docs/isocpp/intro.html /[1.3.12]
当然没有列出插入随机指令,而且很难说“ranges from”方面将包括插入随机指令的决定,因为随机指令位于列出的行为之间的连续统中的任何位置。;-) |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |