#ifdef _MSC_VER
#pragma warning(push)
+#pragma warning(disable: 4244) // conversion from 'const std::streamsize' to 'std::size_t', possible loss of data
#pragma warning(disable: 4702) // unreachable code
#pragma warning(disable: 4715) // not all control paths return a value
#endif