file_util: Make move constructor/assignment operator and related functions noexcept
Without this, it's possible to get compilation failures in the (rare) scenario where a container is used to store a bunch of live IOFile instances, as they may be using std::move_if_noexcept under the hood. Given these definitely don't throw exceptions this is also not incorrect to add either.
This commit is contained in:
parent
40d2dcabd7
commit
e8bbafb746
|
@ -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();
|
||||||
|
|
Reference in New Issue