From f0a89b7345f84436c2af142e39ba304189d3851f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Je=C5=99=C3=A1bek?= Date: Mon, 8 Mar 2021 14:43:42 +0100 Subject: [PATCH] Add ops == and != for Optional --- src/catch2/internal/catch_optional.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/catch2/internal/catch_optional.hpp b/src/catch2/internal/catch_optional.hpp index e2d7b057..fb7ebbb6 100644 --- a/src/catch2/internal/catch_optional.hpp +++ b/src/catch2/internal/catch_optional.hpp @@ -75,6 +75,19 @@ namespace Catch { return some(); } + friend bool operator==(Optional const& a, Optional const& b) { + if (a.none() && b.none()) { + return true; + } else if (a.some() && b.some()) { + return *a == *b; + } else { + return false; + } + } + friend bool operator!=(Optional const& a, Optional const& b) { + return !( a == b ); + } + private: T *nullableValue; alignas(alignof(T)) char storage[sizeof(T)];