forked from suyu/suyu
Merge pull request #423 from lioncash/file
file_util: Minor changes to IOFile
This commit is contained in:
commit
b3962e7d1e
2 changed files with 12 additions and 8 deletions
|
@ -809,16 +809,16 @@ IOFile::~IOFile() {
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
IOFile::IOFile(IOFile&& other) {
|
IOFile::IOFile(IOFile&& other) noexcept {
|
||||||
Swap(other);
|
Swap(other);
|
||||||
}
|
}
|
||||||
|
|
||||||
IOFile& IOFile::operator=(IOFile&& other) {
|
IOFile& IOFile::operator=(IOFile&& other) noexcept {
|
||||||
Swap(other);
|
Swap(other);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IOFile::Swap(IOFile& other) {
|
void IOFile::Swap(IOFile& other) noexcept {
|
||||||
std::swap(m_file, other.m_file);
|
std::swap(m_file, other.m_file);
|
||||||
std::swap(m_good, other.m_good);
|
std::swap(m_good, other.m_good);
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,10 +160,10 @@ public:
|
||||||
|
|
||||||
~IOFile();
|
~IOFile();
|
||||||
|
|
||||||
IOFile(IOFile&& other);
|
IOFile(IOFile&& other) noexcept;
|
||||||
IOFile& operator=(IOFile&& other);
|
IOFile& operator=(IOFile&& other) noexcept;
|
||||||
|
|
||||||
void Swap(IOFile& other);
|
void Swap(IOFile& other) noexcept;
|
||||||
|
|
||||||
bool Open(const std::string& filename, const char openmode[]);
|
bool Open(const std::string& filename, const char openmode[]);
|
||||||
bool Close();
|
bool Close();
|
||||||
|
@ -202,11 +202,15 @@ public:
|
||||||
return items_written;
|
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);
|
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);
|
return WriteArray(reinterpret_cast<const char*>(data), length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue