From 4fc291ecd53c0d29a06c24c25f1e283711ae5e03 Mon Sep 17 00:00:00 2001 From: Simon Brand Date: Sun, 1 Oct 2017 22:21:53 +0100 Subject: [PATCH] noexcept --- optional.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/optional.hpp b/optional.hpp index e8e3dd7..e1469b0 100644 --- a/optional.hpp +++ b/optional.hpp @@ -343,7 +343,7 @@ namespace tl { } // TODO conditionally disable - constexpr optional(optional&& rhs) { + constexpr optional(optional&& rhs) noexcept(std::is_nothrow_move_constructible::value) { if (rhs.has_value()) { this->m_has_value = true; new (std::addressof(this->m_value)) T (std::move(*rhs)); @@ -428,7 +428,8 @@ namespace tl { } // TODO conditionally delete, check exception guarantee - optional& operator=(optional&& rhs) noexcept { + optional& operator=(optional&& rhs) + noexcept(std::is_nothrow_move_assignable::value && std::is_nothrow_move_constructible::value) { if (has_value()) { if (rhs.has_value()) { this->m_value = std::move(rhs.m_value);