aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-04-29 18:29:03 -0400
committerLioncash <mathew1800@gmail.com>2018-04-29 18:34:09 -0400
commite8bbafb746ce7e178be757471305539c05bb7f23 (patch)
tree5396d4f28614f5b346a21776935597ec466f117f /src
parent40d2dcabd7e5b978c0e1e5c76000de01e2d0c270 (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/common/file_util.cpp6
-rw-r--r--src/common/file_util.h6
2 files changed, 6 insertions, 6 deletions
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp
index cd852bfd85..2d0b81c6ee 100644
--- a/src/common/file_util.cpp
+++ b/src/common/file_util.cpp
@@ -809,16 +809,16 @@ IOFile::~IOFile() {
Close();
}
-IOFile::IOFile(IOFile&& other) {
+IOFile::IOFile(IOFile&& other) noexcept {
Swap(other);
}
-IOFile& IOFile::operator=(IOFile&& other) {
+IOFile& IOFile::operator=(IOFile&& other) noexcept {
Swap(other);
return *this;
}
-void IOFile::Swap(IOFile& other) {
+void IOFile::Swap(IOFile& other) noexcept {
std::swap(m_file, other.m_file);
std::swap(m_good, other.m_good);
}
diff --git a/src/common/file_util.h b/src/common/file_util.h
index 32ff4d8ca2..fc6b3ea466 100644
--- a/src/common/file_util.h
+++ b/src/common/file_util.h
@@ -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();