本文介绍了std :: byte指针是否具有与char *相同的别名含义?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
C ++(和C)严格的别名规则包括 char *
和 unsigned char *
可以别名
C++ (and C) strict aliasing rules include that a char*
and unsigned char*
may alias any other pointer.
AFAIK对于 uint8_t *
没有类似的规则。
AFAIK there is no analogous rule for uint8_t*
.
因此我的问题是:指针?
Thus my question: What are the aliasing rules for a std::byte
pointer?
C ++参考当前仅:
The C++ reference currently just specifies:
推荐答案
根据当前的标准草案([basic.types] / 2):
From the current Standard draft ([basic.types]/2):
是的,对这三种类型都使用相同的别名规则,就像cppreference求和一样。
So yes, the same aliasing rules apply for the three types, just as cppreference sums up.
值得一提的是([basic.lval] /8.8):
It also might be valuable to mention ([basic.lval]/8.8):
- 一个char,unsigned char或std :: byte类型。
这篇关于std :: byte指针是否具有与char *相同的别名含义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!