看起来以下内容是保证通过的(已经在这里询问过):
#include <type_traits>
static_assert(!std::is_same_v<char, signed char>);
static_assert(!std::is_same_v<char, unsigned char>);
[
char
]具有与signed char
或unsigned char
相同的表示和对齐方式,但始终是不同的类型。
是否也保证int8_t
和uint8_t
是在明确有符号类型的基础上定义的,而不是在char
的基础上定义的,因此它们与char
一起形成了一组3个不同的类型?
#include <cstdint>
#include <type_traits>
static_assert(!std::is_same_v<char, int8_t>);
static_assert(!std::is_same_v<char, uint8_t>);