Files
loongoffice/external/boost/boost.jsonparser.warnings.patch.0
Tor Lillqvist cf704d65e0 WaE: comparison of constant 255 with expression of type 'const char'
Better fix for warning: "comparison of constant 255 with expression of
type 'const char' is always true". I hadn't considered that the code
is in a template, so it must handle strings of arbitrary integer types
(well, Unicode).

Change-Id: I38d6d480bfc3ff89db1276cac38d310ecdcc2cfa
2014-04-02 18:19:07 +03:00

70 lines
3.6 KiB
Plaintext

--- boost/property_tree/string_path.hpp
+++ boost/property_tree/string_path.hpp
@@ -88,14 +88,14 @@ namespace boost { namespace property_tree
typedef typename String::value_type char_type;
/// Create an empty path.
- explicit string_path(char_type separator = char_type('.'));
+ explicit string_path(char_type separator_ = char_type('.'));
/// Create a path by parsing the given string.
/// @param value A sequence, possibly with separators, that describes
/// the path, e.g. "one.two.three".
/// @param separator The separator used in parsing. Defaults to '.'.
/// @param tr The translator used by this path to convert the individual
/// parts to keys.
- string_path(const String &value, char_type separator = char_type('.'),
+ string_path(const String &value, char_type separator_ = char_type('.'),
Translator tr = Translator());
/// Create a path by parsing the given string.
/// @param value A zero-terminated array of values. Only use if zero-
@@ -106,7 +106,7 @@ namespace boost { namespace property_tree
/// @param tr The translator used by this path to convert the individual
/// parts to keys.
string_path(const char_type *value,
- char_type separator = char_type('.'),
+ char_type separator_ = char_type('.'),
Translator tr = Translator());
// Default copying doesn't do the right thing with the iterator
@@ -162,23 +162,23 @@ namespace boost { namespace property_tree
};
template <typename String, typename Translator> inline
- string_path<String, Translator>::string_path(char_type separator)
- : m_separator(separator), m_start(m_value.begin())
+ string_path<String, Translator>::string_path(char_type separator_)
+ : m_separator(separator_), m_start(m_value.begin())
{}
template <typename String, typename Translator> inline
string_path<String, Translator>::string_path(const String &value,
- char_type separator,
+ char_type separator_,
Translator tr)
- : m_value(value), m_separator(separator),
+ : m_value(value), m_separator(separator_),
m_tr(tr), m_start(m_value.begin())
{}
template <typename String, typename Translator> inline
string_path<String, Translator>::string_path(const char_type *value,
- char_type separator,
+ char_type separator_,
Translator tr)
- : m_value(value), m_separator(separator),
+ : m_value(value), m_separator(separator_),
m_tr(tr), m_start(m_value.begin())
{}
--- boost/property_tree/detail/json_parser_write.hpp
+++ boost/property_tree/detail/json_parser_write.hpp
@@ -33,7 +33,7 @@
// We escape everything outside ASCII, because this code can't
// handle high unicode characters.
if (*b == 0x20 || *b == 0x21 || (*b >= 0x23 && *b <= 0x2E) ||
- (*b >= 0x30 && *b <= 0x5B) || (*b >= 0x5D && *b <= 0xFF))
+ (*b >= 0x30 && *b <= 0x5B) || (*b >= 0x5D && static_cast<typename std::basic_string<Ch>::traits_type::int_type>(*b) <= 0xFF))
result += *b;
else if (*b == Ch('\b')) result += Ch('\\'), result += Ch('b');
else if (*b == Ch('\f')) result += Ch('\\'), result += Ch('f');