数字与字符串处理:C++ 实用技巧
1. 二进制字面量的实现与使用
在 C++ 中,定义辅助类后,我们可以按预期实现 byte8
、 byte16
和 byte32
二进制字面量。不过,要使用字面量运算符模板,需将 binary_literals
命名空间的内容引入当前命名空间:
using namespace binary;
using namespace binary_literals;
auto b1 = 1010_b8;
auto b2 = 101010101010_b16;
auto b3 = 101010101010101010101010_b32;
但以下定义会触发编译器错误:
// binary literal b8 must be up to 8 digits long
auto b4 = 0011111111_b8;
// binary literal b16 must be up to 16 digits long
auto b5 = 001111111111111111_b16;
// binary literal b32 must be up to 32 digits long
auto b6 = 0011111111111111111111111111111111_b32;
原因是 static_assert
中的条件未