From 6663ffd0367cd6195b170cc362f0b4f4556cb42e Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Fri, 28 Dec 2018 09:47:22 +0100 Subject: [PATCH] fix --- src/cpp-utils/either.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cpp-utils/either.h b/src/cpp-utils/either.h index 45cb2049..cc7a2306 100644 --- a/src/cpp-utils/either.h +++ b/src/cpp-utils/either.h @@ -33,7 +33,7 @@ namespace cpputils { } } - either(either &&rhs) noexcept(noexcept(_construct_left(std::move(rhs._left))) && noexcept(_construct_right(std::move(rhs._right)))) + either(either &&rhs) noexcept(noexcept(std::declval>()._construct_left(std::move(rhs._left))) && noexcept(std::declval>()._construct_right(std::move(rhs._right)))) : _side(rhs._side) { if(_side == Side::left) { _construct_left(std::move(rhs._left)); // NOLINT(cppcoreguidelines-pro-type-union-access) @@ -47,7 +47,7 @@ namespace cpputils { } //TODO Try allowing copy-assignment when Left/Right types are std::is_convertible - either &operator=(const either &rhs) noexcept(noexcept(_construct_left(rhs._left)) && noexcept(_construct_right(rhs._right))) { + either &operator=(const either &rhs) noexcept(noexcept(std::declval>()._construct_left(rhs._left)) && noexcept(std::declval>()._construct_right(rhs._right))) { _destruct(); _side = rhs._side; if (_side == Side::left) { @@ -58,7 +58,7 @@ namespace cpputils { return *this; } - either &operator=(either &&rhs) noexcept(noexcept(_construct_left(std::move(rhs._left))) && noexcept(_construct_right(std::move(rhs._right)))) { + either &operator=(either &&rhs) noexcept(noexcept(std::declval>()._construct_left(std::move(rhs._left))) && noexcept(std::declval>()._construct_right(std::move(rhs._right)))) { _destruct(); _side = rhs._side; if (_side == Side::left) {