diff options
author | bunnei <bunneidev@gmail.com> | 2018-04-29 21:47:28 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-29 21:47:28 -0400 |
commit | b3962e7d1e585f33461f1a0f11c825cf261f6c7d (patch) | |
tree | 5396d4f28614f5b346a21776935597ec466f117f /src/common/file_util.h | |
parent | 869075867bf7bda1323ee2bb32ec45a89dfdb0ca (diff) | |
parent | e8bbafb746ce7e178be757471305539c05bb7f23 (diff) |
Merge pull request #423 from lioncash/file
file_util: Minor changes to IOFile
Diffstat (limited to 'src/common/file_util.h')
-rw-r--r-- | src/common/file_util.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/common/file_util.h b/src/common/file_util.h index 4c11849ee..fc6b3ea46 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h @@ -160,10 +160,10 @@ public: ~IOFile(); - IOFile(IOFile&& other); - IOFile& operator=(IOFile&& other); + IOFile(IOFile&& other) noexcept; + IOFile& operator=(IOFile&& other) noexcept; - void Swap(IOFile& other); + void Swap(IOFile& other) noexcept; bool Open(const std::string& filename, const char openmode[]); bool Close(); @@ -202,11 +202,15 @@ public: return items_written; } - size_t ReadBytes(void* data, size_t length) { + template <typename T> + size_t ReadBytes(T* data, size_t length) { + static_assert(std::is_trivially_copyable<T>(), "T must be trivially copyable"); return ReadArray(reinterpret_cast<char*>(data), length); } - size_t WriteBytes(const void* data, size_t length) { + template <typename T> + size_t WriteBytes(const T* data, size_t length) { + static_assert(std::is_trivially_copyable<T>(), "T must be trivially copyable"); return WriteArray(reinterpret_cast<const char*>(data), length); } |