diff --git a/libs/main/serialization/pibinarystream.h b/libs/main/serialization/pibinarystream.h
index bab6a8b0..5500a0c4 100644
--- a/libs/main/serialization/pibinarystream.h
+++ b/libs/main/serialization/pibinarystream.h
@@ -162,7 +162,7 @@ inline PIBinaryStream
& operator<<(PIBinaryStream
& s, const bool v) {
}
template
inline PIBinaryStream & operator>>(PIBinaryStream
& s, bool & v) {
- uchar c;
+ uchar c = 0;
s.binaryStreamTake(&c, sizeof(c));
v = c;
return s;
@@ -354,9 +354,9 @@ inline PIBinaryStream
& operator>>(PIBinaryStream
& s, PIVector & v) {
return s;
}
template::value, int>::type = 0,
- typename std::enable_if<
+ typename T,
+ typename std::enable_if::value, int>::type = 0,
+ typename std::enable_if<
!std::is_same &>() >> std::declval()), PIBinaryStreamTrivialRef>::value,
int>::type = 0>
inline PIBinaryStream
& operator>>(PIBinaryStream
& s, PIVector & v) {
@@ -383,9 +383,9 @@ inline PIBinaryStream & operator>>(PIBinaryStream
& s, PIVector & v) {
//! \~english Restore operator for PIDeque of any trivial copyable type
//! \~russian Оператор извлечения для PIDeque тривиальных типов
template::value, int>::type = 0,
- typename std::enable_if<
+ typename T,
+ typename std::enable_if::value, int>::type = 0,
+ typename std::enable_if<
std::is_same &>() >> std::declval()), PIBinaryStreamTrivialRef>::value,
int>::type = 0>
inline PIBinaryStream
& operator>>(PIBinaryStream
& s, PIDeque & v) {
@@ -404,9 +404,9 @@ inline PIBinaryStream & operator>>(PIBinaryStream
& s, PIDeque & v) {
return s;
}
template::value, int>::type = 0,
- typename std::enable_if<
+ typename T,
+ typename std::enable_if::value, int>::type = 0,
+ typename std::enable_if<
!std::is_same &>() >> std::declval()), PIBinaryStreamTrivialRef>::value,
int>::type = 0>
inline PIBinaryStream
& operator>>(PIBinaryStream
& s, PIDeque & v) {
@@ -433,9 +433,9 @@ inline PIBinaryStream & operator>>(PIBinaryStream
& s, PIDeque & v) {
//! \~english Restore operator for PIVector2D of any trivial copyable type
//! \~russian Оператор извлечения для PIVector2D тривиальных типов
template::value, int>::type = 0,
- typename std::enable_if<
+ typename T,
+ typename std::enable_if::value, int>::type = 0,
+ typename std::enable_if<
std::is_same &>() >> std::declval()), PIBinaryStreamTrivialRef>::value,
int>::type = 0>
inline PIBinaryStream
& operator>>(PIBinaryStream
& s, PIVector2D & v) {
@@ -456,9 +456,9 @@ inline PIBinaryStream & operator>>(PIBinaryStream
& s, PIVector2D & v)
return s;
}
template::value, int>::type = 0,
- typename std::enable_if<
+ typename T,
+ typename std::enable_if::value, int>::type = 0,
+ typename std::enable_if<
!std::is_same &>() >> std::declval()), PIBinaryStreamTrivialRef>::value,
int>::type = 0>
inline PIBinaryStream
& operator>>(PIBinaryStream
& s, PIVector2D & v) {