IDL: silence narrowing conversion in bool serializer
bool serializers are now aliases to int8_t serializers, but gcc 9 complains about narrowing conversions, due to the path int8_t -> int -> bool. A bad narrowing conversion here cannot happen in practice, but massage the code a little to silence it.
This commit is contained in:
@@ -199,7 +199,21 @@ struct integral_serializer {
|
||||
}
|
||||
};
|
||||
|
||||
template<> struct serializer<bool> : public integral_serializer<int8_t> {};
|
||||
template<> struct serializer<bool> {
|
||||
template <typename Input>
|
||||
static bool read(Input& i) {
|
||||
return deserialize_integral<uint8_t>(i);
|
||||
}
|
||||
template< typename Output>
|
||||
static void write(Output& out, bool v) {
|
||||
serialize_integral(out, uint8_t(v));
|
||||
}
|
||||
template <typename Input>
|
||||
static void skip(Input& i) {
|
||||
read(i);
|
||||
}
|
||||
|
||||
};
|
||||
template<> struct serializer<int8_t> : public integral_serializer<int8_t> {};
|
||||
template<> struct serializer<uint8_t> : public integral_serializer<uint8_t> {};
|
||||
template<> struct serializer<int16_t> : public integral_serializer<int16_t> {};
|
||||
|
||||
Reference in New Issue
Block a user