diff options
Diffstat (limited to 'test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp')
| -rw-r--r-- | test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp deleted file mode 100644 index 17ee9754531fe..0000000000000 --- a/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp +++ /dev/null @@ -1,101 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++98, c++03, c++11 -// <optional> - -// optional<T>& operator=(const optional<T>& rhs); - -#include <experimental/optional> -#include <type_traits> -#include <cassert> - -#include "test_macros.h" - -using std::experimental::optional; - -struct AllowConstAssign { - AllowConstAssign(AllowConstAssign const&) {} - AllowConstAssign const& operator=(AllowConstAssign const&) const { - return *this; - } -}; - -struct X -{ - static bool throw_now; - - X() = default; - X(const X&) - { - if (throw_now) - TEST_THROW(6); - } -}; - -bool X::throw_now = false; - -int main() -{ - { - optional<int> opt; - constexpr optional<int> opt2; - opt = opt2; - static_assert(static_cast<bool>(opt2) == false, ""); - assert(static_cast<bool>(opt) == static_cast<bool>(opt2)); - } - { - optional<const AllowConstAssign> opt; - optional<const AllowConstAssign> opt2; - opt = opt2; - } - { - optional<int> opt; - constexpr optional<int> opt2(2); - opt = opt2; - static_assert(static_cast<bool>(opt2) == true, ""); - static_assert(*opt2 == 2, ""); - assert(static_cast<bool>(opt) == static_cast<bool>(opt2)); - assert(*opt == *opt2); - } - { - optional<int> opt(3); - constexpr optional<int> opt2; - opt = opt2; - static_assert(static_cast<bool>(opt2) == false, ""); - assert(static_cast<bool>(opt) == static_cast<bool>(opt2)); - } - { - optional<int> opt(3); - constexpr optional<int> opt2(2); - opt = opt2; - static_assert(static_cast<bool>(opt2) == true, ""); - static_assert(*opt2 == 2, ""); - assert(static_cast<bool>(opt) == static_cast<bool>(opt2)); - assert(*opt == *opt2); - } -#ifndef TEST_HAS_NO_EXCEPTIONS - { - optional<X> opt; - optional<X> opt2(X{}); - assert(static_cast<bool>(opt2) == true); - try - { - X::throw_now = true; - opt = opt2; - assert(false); - } - catch (int i) - { - assert(i == 6); - assert(static_cast<bool>(opt) == false); - } - } -#endif -} |
