From 2ff866857c7b82bdcb5fbb34c1061b9e76378e07 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Fri, 19 Jul 2019 11:26:38 -0400 Subject: [PATCH] common: remove ceph::optional_ref_default Signed-off-by: Casey Bodley --- src/common/optional_ref_default.h | 36 ------------------------------- 1 file changed, 36 deletions(-) delete mode 100644 src/common/optional_ref_default.h diff --git a/src/common/optional_ref_default.h b/src/common/optional_ref_default.h deleted file mode 100644 index c488eba3870..00000000000 --- a/src/common/optional_ref_default.h +++ /dev/null @@ -1,36 +0,0 @@ - -#pragma once - -namespace ceph { - -/* - * Why? - * - * Can be used to pass optional param by reference, and param can be std::nullopt, in which - * case we construct a default value and use that as a reference. This is useful for passing - * in multiple arguments as an optional structure (with default values), and there is no need to check if - * passed structure is actually initialized. - */ - -template -class optional_ref_default -{ - std::optional default_ref_val; - std::optional> ref; - -public: - optional_ref_default(std::nullopt_t opt) : default_ref_val(T()), - ref(*default_ref_val) {} - - optional_ref_default(T& t) : ref(t) {} - - T *operator->() { - return &(ref->get()); - } - - T& operator*() { - return ref->get(); - } -}; - -} -- 2.39.5