MinGW和Boost警告错误?

时间:2011-09-05 03:43:15

标签: boost mingw

我正在为我的应用程序使用Boost(1.47.0自编译)和MinGW 4.6(用于C ++ 0x功能),但我在Boost的JSON解析代码中收到了大量警告(我使用-Werror)。 / p>

我在Linux或MSVC中没有出现这些错误(MSVC Boost是从完全相同的源代码树自编译的)。以下是错误及其指向的行。

boost\property_tree\detail\json_parser_write.hpp|35|error: comparison is always true due to limited range of data type [-Werror=type-limits]

        if (*b == 0x20 || *b == 0x21 || (*b >= 0x23 && *b <= 0x2E) ||
            (*b >= 0x30 && *b <= 0x5B) || (*b >= 0x5D && *b <= 0xFF))
            result += *b;

boost\property_tree\detail\json_parser_read.hpp|115|error: unused parameter 'e' [-Werror=unused-parameter]

        void operator()(It b, It e) const
        {
            c.string += *b;
        }

这些错误看起来很合理,但有一种我缺少的解决方法吗?

1 个答案:

答案 0 :(得分:1)

关于第一个,我猜'b'被定义为'char *'? char默认为unsigned或signed是编译器相关的AFAIK。有可能mingw将char默认为signed,使得与0x0FF的比较超出可能的范围。

第二个是不言自明的,警告正在做它应该做的事情,你应该只是禁用那个警告。