diff options
author | Lioncash <mathew1800@gmail.com> | 2016-04-13 19:20:23 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2016-04-13 19:20:26 -0400 |
commit | bf9945b81bf7d41c197ac8b190cab9e1c7176733 (patch) | |
tree | 66be363172591808026c90e41ff06eab2ea190d1 /src/common/file_util.h | |
parent | 3ee4432fe391282ac2a5ab5492ff915b0c2adf28 (diff) |
file_util: Check for is_trivially_copyable
Also applies the template checks to ReadArray as well.
Diffstat (limited to 'src/common/file_util.h')
-rw-r--r-- | src/common/file_util.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/common/file_util.h b/src/common/file_util.h index 80e618acaf..dd151575f2 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h @@ -192,6 +192,9 @@ public: template <typename T> size_t ReadArray(T* data, size_t length) { + static_assert(std::is_standard_layout<T>(), "Given array does not consist of standard layout objects"); + static_assert(std::is_trivially_copyable<T>(), "Given array does not consist of trivially copyable objects"); + if (!IsOpen()) { m_good = false; return -1; @@ -207,9 +210,8 @@ public: template <typename T> size_t WriteArray(const T* data, size_t length) { - static_assert(std::is_standard_layout<T>::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<T>::value, "Given array does not consist of trivially copyable objects"); + static_assert(std::is_standard_layout<T>(), "Given array does not consist of standard layout objects"); + static_assert(std::is_trivially_copyable<T>(), "Given array does not consist of trivially copyable objects"); if (!IsOpen()) { m_good = false; |