Bee*_*ope 13 c++ signed char strict-aliasing language-lawyer
在C ++中,存在一个别名漏洞,该漏洞允许通过某些字符类型的指针来读取或写入任何对象的对象表示。
这仅适用于char和unsigned char还是适用于signed char?
Sto*_*ica 18
不,该规定不适用于signed char。
[basic.lval]
8如果程序尝试通过以下类型之一以外的glvalue访问对象的存储值,则行为未定义:
- [...]
- 一个
char,unsigned char或std?::?byte类型。
上面的引用包含了最后一个关于字符类型别名的项目符号。signed char被排除。
但是,这也是CWG第350期所涉及主题的一部分,因此可能会发生变化。根据问题的发展方向,其目的是(最终,希望是?)定义明确。