summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-10-12 06:48:31 +0000
committerEric Fiselier <eric@efcs.ca>2016-10-12 06:48:31 +0000
commitfc647db3ee8215ab2fa5f7cdea8d327c2faa768f (patch)
treee81dc360c9c06b9a32303243d77c4c7325f8897f /libcxx/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp
parent6ee4001cc957acac39181b68193e1414c3163698 (diff)
downloadbcm5719-llvm-fc647db3ee8215ab2fa5f7cdea8d327c2faa768f.tar.gz
bcm5719-llvm-fc647db3ee8215ab2fa5f7cdea8d327c2faa768f.zip
Revert Add <optional>. Will recommit with better commit message
llvm-svn: 283978
Diffstat (limited to 'libcxx/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp')
-rw-r--r--libcxx/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp102
1 files changed, 0 insertions, 102 deletions
diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp
deleted file mode 100644
index 98c90aa1d4f..00000000000
--- a/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp
+++ /dev/null
@@ -1,102 +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, c++14
-// <optional>
-
-// optional<T>& operator=(const optional<T>& rhs);
-
-#include <optional>
-#include <type_traits>
-#include <cassert>
-
-#include "test_macros.h"
-#include "archetypes.hpp"
-
-using std::optional;
-
-struct X
-{
- static bool throw_now;
-
- X() = default;
- X(const X&)
- {
- if (throw_now)
- TEST_THROW(6);
- }
-};
-
-bool X::throw_now = false;
-
-template <class Tp>
-constexpr bool assign_empty(optional<Tp>&& lhs) {
- const optional<Tp> rhs;
- lhs = rhs;
- return !lhs.has_value() && !rhs.has_value();
-}
-
-template <class Tp>
-constexpr bool assign_value(optional<Tp>&& lhs) {
- const optional<Tp> rhs(101);
- lhs = rhs;
- return lhs.has_value() && rhs.has_value() && *lhs == *rhs;
-}
-
-int main()
-{
- {
- using O = optional<int>;
- LIBCPP_STATIC_ASSERT(assign_empty(O{42}), "");
- LIBCPP_STATIC_ASSERT(assign_value(O{42}), "");
- assert(assign_empty(O{42}));
- assert(assign_value(O{42}));
- }
- {
- using O = optional<TrivialTestTypes::TestType>;
- LIBCPP_STATIC_ASSERT(assign_empty(O{42}), "");
- LIBCPP_STATIC_ASSERT(assign_value(O{42}), "");
- assert(assign_empty(O{42}));
- assert(assign_value(O{42}));
- }
- {
- using O = optional<TestTypes::TestType>;
- assert(assign_empty(O{42}));
- assert(assign_value(O{42}));
- }
- {
- using T = TestTypes::TestType;
- T::reset();
- optional<T> opt(3);
- const optional<T> opt2;
- assert(T::alive == 1);
- opt = opt2;
- assert(T::alive == 0);
- assert(!opt2.has_value());
- assert(!opt.has_value());
- }
-#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
-}
OpenPOWER on IntegriCloud