QDataStream &operator<<(QDataStream &out, T value) {
out << static_cast<typename std::underlying_type<T>::type>(value);
return out;
QDataStream &operator<<(QDataStream &out, T value) {
out << static_cast<typename std::underlying_type<T>::type>(value);
return out;