【发布时间】:2017-09-18 23:38:19
【问题描述】:
C++(和 C)严格的别名规则包括 char* 和 unsigned char* 可以别名任何其他指针。
AFAIK 对于uint8_t* 没有类似的规则。
因此我的问题是:std::byte 指针的别名规则是什么?
C++ 参考目前只是specifies:
与字符类型(char、unsigned char、signed char)一样,它可用于访问其他对象(对象表示)占用的原始内存,但与这些类型不同,它不是字符类型,也不是算术类型.
【问题讨论】:
-
en.cppreference.com/w/cpp/language/… 相同的别名规则适用于
std::byte和char -
@Justin:您可能想要更清楚一点,因为“适用规则”并没有说明适用哪些规则。
std::byte与char和unsigned char具有相同的规则。 -
@Justin:不是在你第一次发帖的时候(你有:“en.cppreference.com/w/cpp/language/…别名规则适用于
std::byte”)。你已经编辑过;我加载了它预编辑。感谢修复。
标签: c++ c++17 strict-aliasing