From 1ea3ee1bfba682c99c9472f29fa14c963872a488 Mon Sep 17 00:00:00 2001 From: "s.kolesnik" <7fosGbc9S> Date: Mon, 29 Mar 2021 15:49:30 +0500 Subject: [PATCH] added explicit initialization in the copy constructor due to occurring warning --- include/tl/optional.hpp | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/include/tl/optional.hpp b/include/tl/optional.hpp index 9b13b7c..e53f98d 100644 --- a/include/tl/optional.hpp +++ b/include/tl/optional.hpp @@ -448,21 +448,30 @@ struct optional_copy_base : optional_operations_base { // This specialization is for when T is not trivially copy constructible template -struct optional_copy_base : optional_operations_base { - using optional_operations_base::optional_operations_base; +struct optional_copy_base : optional_operations_base +{ + using optional_operations_base::optional_operations_base; - optional_copy_base() = default; - optional_copy_base(const optional_copy_base &rhs) { - if (rhs.has_value()) { - this->construct(rhs.get()); - } else { - this->m_has_value = false; + optional_copy_base() = default; + + optional_copy_base(const optional_copy_base &rhs) + : optional_copy_base() + { + if (rhs.has_value()) + { + this->construct(rhs.get()); + } + else + { + this->m_has_value = false; + } } - } - optional_copy_base(optional_copy_base &&rhs) = default; - optional_copy_base &operator=(const optional_copy_base &rhs) = default; - optional_copy_base &operator=(optional_copy_base &&rhs) = default; + optional_copy_base(optional_copy_base &&rhs) = default; + + optional_copy_base &operator=(const optional_copy_base &rhs) = default; + + optional_copy_base &operator=(optional_copy_base &&rhs) = default; }; // This class manages conditionally having a trivial move constructor