本文介绍了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 *相同的别名含义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-19 13:48