MinGW и Boost предупреждение об ошибках? - PullRequest
1 голос
/ 05 сентября 2011

Я использую Boost (1.47.0 самостоятельно скомпилированный) и MinGW 4.6 (для функций C ++ 0x) для моего приложения, но я получаю массу предупреждений (я использую -Werror) в коде разбора JSON Boost.

Я не получаю эти ошибки в 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 Ответ

1 голос
/ 05 сентября 2011

Что касается первого, я предполагаю, что 'b' определяется как 'char *'? Независимо от того, является ли char по умолчанию неподписанным или подписанным, AFAIK зависит от компилятора. Возможно, mingw по умолчанию использует char для подписи, сравнивая его с 0x0FF за пределами возможного диапазона.

Второе говорит само за себя: предупреждение делает именно то, что и должно быть, вам, вероятно, следует просто отключить это предупреждение.

...