Boost问题:/type_with_alignment.hpp:209: Parenthesis/brace mismatch between #if and #else branches;

为了快速解决的请直接看 撒花段

下面记录的是牛历:

今天在使用Boost库的时候遇到了这样的错误提示:`/type_with_alignment.hpp:209: Parenthesis/brace mismatch between #if and #else branches; using #if branch`,错误的大意是在说遇到了不匹配的分支,在打开对应的文件'/type_with_alignment.hpp'之后找到第209行,可以看到此处是一个宏定义else,莫不是在找不到分支了?所以抱着试试看的态度(没有买三个疗程)往上找对应的'if',注意这里找对应的宏定义if,发现与209行else对应应该是30行的'#ifndef __BORLANDC__'这为什么会引发错误呢,继续思考:

在这句宏定义的上一句是:“namespace detail{”,那么这个命名空间的有效范围是多大呢,比对之后可以找到这与这句命名空间对应的“}”在第79行,看到这里多少就有些眉目了,因为79行的内容是在“#ifndef”分支当中的,而它对应的“{”则不会受到“#ifndef”的控制,所以当“ifndef”不生效的时候就会造成括号缺失的问题,这样,编译器就会报警,所以正确的解决办法是调换第28行“namespace detail{”和第30行的内容“#ifndef __BORLANDC__”,这样就解决了

撒花:

将源文件中26~31行的内容修改成下面的形式

namespace boost {
#ifndef __BORLANDC__
   namespace detail{

源文件是这样写的

namespace boost {
   namespace detail{

#ifndef __BORLANDC__

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值