我正在编写一个单元测试,根据预期的数组检查一些二进制数据。有问题的预期数组只是一些字节序列,具体无关紧要:
char expected[] = {0x42, 0xde, 0xad, 0xbe, 0xef};
这在 C++ 中编译得很好,但在 C++11 中,这会在缩小转换时发出警告。我编译是-Werror
因为警告很重要,所以该行不适合我编译。据我所知,char没有文字后缀,所以看来我必须这样做:
char expected[] = {static_cast<char>(0x42), static_cast<char>(0xde), ... };
这对我来说似乎很笨拙。有没有更好的方法来构造这个字符数组?(在删除-Werror
或添加之外-Wno-narrowing
)。