diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-10-12 06:48:31 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-10-12 06:48:31 +0000 |
commit | fc647db3ee8215ab2fa5f7cdea8d327c2faa768f (patch) | |
tree | e81dc360c9c06b9a32303243d77c4c7325f8897f /libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp | |
parent | 6ee4001cc957acac39181b68193e1414c3163698 (diff) | |
download | bcm5719-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.observe/value_rvalue.pass.cpp')
-rw-r--r-- | libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp deleted file mode 100644 index 2ef485b7fe5..00000000000 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp +++ /dev/null @@ -1,72 +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> - -// constexpr T& optional<T>::value() &&; - -#include <optional> -#include <type_traits> -#include <cassert> - -#include "test_macros.h" - -using std::optional; -using std::bad_optional_access; - -struct X -{ - X() = default; - X(const X&) = delete; - constexpr int test() const & {return 3;} - int test() & {return 4;} - constexpr int test() const && {return 5;} - int test() && {return 6;} -}; - -struct Y -{ - constexpr int test() && {return 7;} -}; - -constexpr int -test() -{ - optional<Y> opt{Y{}}; - return std::move(opt).value().test(); -} - -int main() -{ - { - optional<X> opt; ((void)opt); - ASSERT_NOT_NOEXCEPT(std::move(opt).value()); - ASSERT_SAME_TYPE(decltype(std::move(opt).value()), X&&); - } - { - optional<X> opt; - opt.emplace(); - assert(std::move(opt).value().test() == 6); - } -#ifndef TEST_HAS_NO_EXCEPTIONS - { - optional<X> opt; - try - { - std::move(opt).value(); - assert(false); - } - catch (const bad_optional_access&) - { - } - } -#endif - static_assert(test() == 7, ""); -} |