5
|
HostileFork says dont trust SE · 技术社区 · 6 年前 |
1
3
代码
严格的别名规则定义为 访问对象 通过 左值 :
唯一重要的是左值的类型,以及由左值指定的对象的有效类型。不是将左值派生的一些中间阶段存储在指针变量中。
注意:问题是在发布以下文本后编辑的。以下文本适用于原始问题,其中空间由
关于代码是否正确。您的代码相当于Q80
绊脚石是代码是否
只读
本文的作者考虑写来设置整个
在我看来,对于您的代码是否正确,目前还没有明确的答案。 |
2
2
你有两个结构
编译器清楚地知道要修改哪个对象。
这里同样如此:通过非常基本的分析,编译器可以准确地知道
有趣的是:
在这个函数中,指针
例如。
让你相信
|
3
1
N1570 P5.6P7的编写方式,只有使用字符类型的lvalues或通过调用库函数(如
不幸的是,正如使用union可以证明的那样,gcc和clang在识别不同类型的lvalue之间的关系方面非常差,即使一个lvalue明显地从另一个lvalue派生出来。给出如下信息:
标准中没有任何内容可以区分以下函数对的“混叠”行为:
它们都使用类型的左值
尽管第一个表单调用ub似乎很荒谬,但如果将对标准中明确列出的访问模式以外的访问模式的支持视为一个实现质量问题,那么这就不成问题。根据已发表的基本原理,标准思想编译器的作者将尝试生成高质量的实现,因此没有必要禁止“一致”的实现质量如此之低而无用。一个实现可以是“一致的”,而不能够处理
不幸的是,尽管我认为该标准的作者可能已经期望质量实现能够处理类似
|
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |