|
|
|
@ -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); |
|
|
|
} |
|
|
|
|
|
|
|
|