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

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.
parent 40d2dcab
No related branches found
No related tags found
No related merge requests found
...@@ -809,16 +809,16 @@ IOFile::~IOFile() { ...@@ -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: ...@@ -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();
......
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