error: expected unqualified-id before ‘*’ token

出错如下:

/home/xxx/boost_1_67_0/boost/uuid/uuid_io.hpp:100:32: error: expected unqualified-id before ‘=’ token
             unsigned char byte = static_cast<unsigned char>(std::distance(&xdigits[0], f));
                                ^
/home/xxx/boost_1_67_0/boost/uuid/uuid_io.hpp:110:18: error: expected unqualified-id before ‘<<=’ token
             byte <<= 4;
                  ^~~
/home/xxx/boost_1_67_0/boost/uuid/uuid_io.hpp:111:18: error: expected unqualified-id before ‘|=’ token
             byte |= static_cast<unsigned char>(std::distance(&xdigits[0], f));

原因是前面有个头文件里:

#define byte char

byte已经被替换成char了,所以出错了。
这个修改也简单,把这个头文件提到有宏定义的头文件前面去就可以了。
所以尽量不用#define,会出奇怪问题,错误还不容易看出来。
不过boost用byte做变量名也太不妥了,用byte做type定义的很常见啊,太容易出问题了。
这个提示unqualified-id,我也服了,一般翻译都不知道他啥意思,看了qualified,有个意思是有保留,关键字又叫保留字,我猜他意思是希望有个不是关键字的id。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值