From bf9945b81bf7d41c197ac8b190cab9e1c7176733 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 13 Apr 2016 19:20:23 -0400 Subject: file_util: Check for is_trivially_copyable Also applies the template checks to ReadArray as well. --- src/common/file_util.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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; -- cgit v1.2.3