Skip to content
Snippets Groups Projects
Unverified Commit 40d2dcab authored by Lioncash's avatar Lioncash
Browse files

file_util: Add static assertions to ReadBytes() and WriteBytes()

Ensure that the actual types being passed in are trivially copyable. The internal
call to ReadArray() and WriteArray() will always succeed, since they're passed a pointer to char*
which is always trivially copyable.
parent 86907586
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment