diff --git a/src/common/file_util.h b/src/common/file_util.h index 80e618aca..dd151575f 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h @@ -192,6 +192,9 @@ public: template size_t ReadArray(T* data, size_t length) { + static_assert(std::is_standard_layout(), "Given array does not consist of standard layout objects"); + static_assert(std::is_trivially_copyable(), "Given array does not consist of trivially copyable objects"); + if (!IsOpen()) { m_good = false; return -1; @@ -207,9 +210,8 @@ public: template size_t WriteArray(const T* data, size_t length) { - static_assert(std::is_standard_layout::value, "Given array does not consist of standard layout objects"); - // TODO: gcc 4.8 does not support is_trivially_copyable, but we really should check for it here. - //static_assert(std::is_trivially_copyable::value, "Given array does not consist of trivially copyable objects"); + static_assert(std::is_standard_layout(), "Given array does not consist of standard layout objects"); + static_assert(std::is_trivially_copyable(), "Given array does not consist of trivially copyable objects"); if (!IsOpen()) { m_good = false;