summaryrefslogtreecommitdiff
path: root/test/std/experimental/optional/optional.object
diff options
context:
space:
mode:
Diffstat (limited to 'test/std/experimental/optional/optional.object')
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp9
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp8
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp22
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp8
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp3
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp9
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp7
-rw-r--r--test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp8
-rw-r--r--test/std/experimental/optional/optional.object/optional_const_void.fail.cpp5
-rw-r--r--test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp9
-rw-r--r--test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp9
-rw-r--r--test/std/experimental/optional/optional.object/optional_void.fail.cpp5
-rw-r--r--test/std/experimental/optional/optional.object/types.pass.cpp7
29 files changed, 37 insertions, 184 deletions
diff --git a/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
index e256a098f1ac..3d0d2e03158b 100644
--- a/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// template <class U> optional<T>& operator=(U&& v);
@@ -16,19 +17,14 @@
#include <cassert>
#include <memory>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
{
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
static_assert(std::is_assignable<optional<int>, int>::value, "");
static_assert(std::is_assignable<optional<int>, int&>::value, "");
static_assert(std::is_assignable<optional<int>&, int>::value, "");
@@ -68,5 +64,4 @@ int main()
assert(static_cast<bool>(opt) == true);
assert(**opt == 3);
}
-#endif // _LIBCPP_STD_VER > 11
}
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
index 999d03d3a885..89ea345029c2 100644
--- 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
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -16,8 +17,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -34,11 +33,8 @@ struct X
bool X::throw_now = false;
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
optional<int> opt;
constexpr optional<int> opt2;
@@ -87,5 +83,4 @@ int main()
assert(static_cast<bool>(opt) == false);
}
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp
index ec98ef449153..94f2bb21a475 100644
--- a/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -17,8 +18,6 @@
#include <cassert>
#include <memory>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
class X
@@ -55,11 +54,8 @@ public:
bool Z::dtor_called = false;
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
optional<int> opt;
opt.emplace();
@@ -145,5 +141,4 @@ int main()
assert(Z::dtor_called == true);
}
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp
index aada0f4ec535..fec37408e43b 100644
--- a/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -18,8 +19,6 @@
#include <cassert>
#include <vector>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
class X
@@ -60,7 +59,7 @@ public:
static bool dtor_called;
constexpr Z() : i_(0) {}
constexpr Z(int i) : i_(i) {}
- constexpr Z(std::initializer_list<int> il) : i_(il.begin()[0]), j_(il.begin()[1])
+ Z(std::initializer_list<int> il) : i_(il.begin()[0]), j_(il.begin()[1])
{throw 6;}
~Z() {dtor_called = true;}
@@ -70,11 +69,8 @@ public:
bool Z::dtor_called = false;
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
X x;
{
@@ -113,5 +109,4 @@ int main()
assert(Z::dtor_called == true);
}
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
index 3e084e5b7dc2..fa00f5602c7f 100644
--- a/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -18,8 +19,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -42,11 +41,8 @@ struct Y {};
bool X::throw_now = false;
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
static_assert(std::is_nothrow_move_assignable<optional<int>>::value, "");
optional<int> opt;
@@ -100,5 +96,4 @@ int main()
{
static_assert(std::is_nothrow_move_assignable<optional<Y>>::value, "");
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp
index 7f39744f0557..b1d851b32f4c 100644
--- a/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// optional<T>& operator=(nullopt_t) noexcept;
@@ -15,8 +16,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
using std::experimental::nullopt_t;
using std::experimental::nullopt;
@@ -29,11 +28,8 @@ struct X
bool X::dtor_called = false;
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
optional<int> opt;
static_assert(noexcept(opt = nullopt) == true, "");
@@ -63,5 +59,4 @@ int main()
assert(static_cast<bool>(opt) == false);
}
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp
index 7d401de1d978..144af2e3a7dc 100644
--- a/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -16,8 +17,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
template <class T>
@@ -76,11 +75,8 @@ public:
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
typedef int T;
optional<T> rhs;
@@ -121,5 +117,4 @@ int main()
optional<T> rhs(Z(3));
test(rhs, true);
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp
index 6a1763de22bd..d24a1ac69b86 100644
--- a/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// constexpr optional() noexcept;
@@ -15,8 +16,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
template <class Opt>
@@ -55,13 +54,9 @@ struct X
X();
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
test_constexpr<optional<int>>();
test_constexpr<optional<int*>>();
test<optional<X>>();
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp
index 014ee859e8a9..dc1666b10362 100644
--- a/test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp
@@ -69,7 +69,7 @@ int main()
struct test_constexpr_ctor
: public optional<int>
{
- constexpr test_constexpr_ctor(in_place_t, int i)
+ constexpr test_constexpr_ctor(in_place_t, int i)
: optional<int>(in_place, i) {}
};
@@ -97,7 +97,7 @@ int main()
struct test_constexpr_ctor
: public optional<Y>
{
- constexpr test_constexpr_ctor(in_place_t)
+ constexpr test_constexpr_ctor(in_place_t)
: optional<Y>(in_place) {}
};
@@ -110,7 +110,7 @@ int main()
struct test_constexpr_ctor
: public optional<Y>
{
- constexpr test_constexpr_ctor(in_place_t, int i)
+ constexpr test_constexpr_ctor(in_place_t, int i)
: optional<Y>(in_place, i) {}
};
@@ -123,7 +123,7 @@ int main()
struct test_constexpr_ctor
: public optional<Y>
{
- constexpr test_constexpr_ctor(in_place_t, int i, int j)
+ constexpr test_constexpr_ctor(in_place_t, int i, int j)
: optional<Y>(in_place, i, j) {}
};
diff --git a/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp
index 7a98e0bf31f3..9bd6b18989fc 100644
--- a/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -19,8 +20,6 @@
#include <vector>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
using std::experimental::in_place_t;
using std::experimental::in_place;
@@ -60,19 +59,15 @@ class Z
public:
constexpr Z() : i_(0) {}
constexpr Z(int i) : i_(i) {}
- constexpr Z(std::initializer_list<int> il) : i_(il.begin()[0]), j_(il.begin()[1])
+ Z(std::initializer_list<int> il) : i_(il.begin()[0]), j_(il.begin()[1])
{throw 6;}
friend constexpr bool operator==(const Z& x, const Z& y)
{return x.i_ == y.i_ && x.j_ == y.j_;}
};
-
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
static_assert(!std::is_constructible<X, std::initializer_list<int>&>::value, "");
static_assert(!std::is_constructible<optional<X>, std::initializer_list<int>&>::value, "");
@@ -98,10 +93,12 @@ int main()
struct test_constexpr_ctor
: public optional<Y>
{
- constexpr test_constexpr_ctor(in_place_t, std::initializer_list<int> i)
+ constexpr test_constexpr_ctor(in_place_t, std::initializer_list<int> i)
: optional<Y>(in_place, i) {}
};
+ constexpr test_constexpr_ctor dopt(in_place, {42, 101, -1});
+ static_assert(*dopt == Y{42, 101, -1}, "");
}
{
static_assert(std::is_constructible<optional<Z>, std::initializer_list<int>&>::value, "");
@@ -114,14 +111,5 @@ int main()
{
assert(i == 6);
}
-
- struct test_constexpr_ctor
- : public optional<Z>
- {
- constexpr test_constexpr_ctor(in_place_t, std::initializer_list<int> i)
- : optional<Z>(in_place, i) {}
- };
-
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp
index 40d55f918993..851157f960f9 100644
--- a/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -16,8 +17,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
template <class T>
@@ -75,12 +74,8 @@ public:
friend constexpr bool operator==(const Z& x, const Z& y) {return x.i_ == y.i_;}
};
-
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
typedef int T;
optional<T> rhs;
@@ -121,5 +116,4 @@ int main()
optional<T> rhs(Z(3));
test(rhs, true);
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp
index c307a2e1e258..40c96581ed84 100644
--- a/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// constexpr optional(nullopt_t) noexcept;
@@ -15,8 +16,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
using std::experimental::nullopt_t;
using std::experimental::nullopt;
@@ -56,13 +55,9 @@ struct X
X();
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
test_constexpr<optional<int>>();
test_constexpr<optional<int*>>();
test<optional<X>>();
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp
index 2697799f0e5e..2bec19e6b4f4 100644
--- a/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// ~optional();
@@ -15,8 +16,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
class X
@@ -29,11 +28,8 @@ public:
bool X::dtor_called = false;
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
typedef int T;
static_assert(std::is_trivially_destructible<T>::value, "");
@@ -55,5 +51,4 @@ int main()
}
assert(X::dtor_called == true);
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp
index a3724375cf4d..a5bfae240073 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// constexpr explicit optional<T>::operator bool() const noexcept;
@@ -17,7 +18,6 @@
int main()
{
-#if _LIBCPP_STD_VER > 11
using std::experimental::optional;
{
@@ -28,5 +28,4 @@ int main()
constexpr optional<int> opt(0);
static_assert(opt, "");
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp
index 98e5dac9719e..faba8d256067 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// T& optional<T>::operator*();
@@ -19,8 +20,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -29,11 +28,8 @@ struct X
int test() {return 4;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
optional<X> opt(X{});
assert((*opt).test() == 4);
@@ -45,5 +41,4 @@ int main()
assert(false);
}
#endif // _LIBCPP_DEBUG
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp
index c72a57852a32..f1bdc36424da 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// constexpr const T& optional<T>::operator*() const;
@@ -19,8 +20,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -33,11 +32,8 @@ struct Y
int test() const {return 2;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
constexpr optional<X> opt(X{});
static_assert((*opt).test() == 3, "");
@@ -53,5 +49,4 @@ int main()
assert(false);
}
#endif // _LIBCPP_DEBUG
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp
index b17fcf8d3050..954ccd71ff53 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// constexpr T* optional<T>::operator->();
@@ -19,8 +20,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -28,11 +27,8 @@ struct X
constexpr int test() const {return 3;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
constexpr optional<X> opt(X{});
static_assert(opt->test() == 3, "");
@@ -44,5 +40,4 @@ int main()
assert(false);
}
#endif // _LIBCPP_DEBUG
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp
index e813dd992a5b..cf900d7029e1 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// constexpr const T* optional<T>::operator->() const;
@@ -19,8 +20,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -39,11 +38,8 @@ struct Z
constexpr int test() const {return 1;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
constexpr optional<X> opt(X{});
static_assert(opt->test() == 3, "");
@@ -63,5 +59,4 @@ int main()
assert(false);
}
#endif // _LIBCPP_DEBUG
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp
index 85f9be6998a0..b998f3067f4f 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -16,8 +17,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
using std::experimental::bad_optional_access;
@@ -29,11 +28,8 @@ struct X
int test() {return 4;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
optional<X> opt;
opt.emplace();
@@ -50,5 +46,4 @@ int main()
{
}
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp
index f0f8af6da45d..baad3b47f3ec 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// constexpr const T& optional<T>::value() const;
@@ -15,8 +16,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -25,16 +24,10 @@ struct X
int test() {return 4;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
constexpr optional<X> opt;
static_assert(opt.value().test() == 3, "");
}
-#else
-#error
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp
index c99baab8b6e4..a38b1f930c72 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -16,8 +17,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
using std::experimental::in_place_t;
using std::experimental::in_place;
@@ -31,11 +30,8 @@ struct X
int test() {return 4;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
constexpr optional<X> opt(in_place);
static_assert(opt.value().test() == 3, "");
@@ -55,5 +51,4 @@ int main()
{
}
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp
index 6118c44bb5ba..6fca8c82cebd 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// template <class U> T optional<T>::value_or(U&& v) &&;
@@ -15,8 +16,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
using std::experimental::in_place_t;
using std::experimental::in_place;
@@ -40,11 +39,8 @@ struct X
{return x.i_ == y.i_;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
optional<X> opt(in_place, 2);
Y y(3);
@@ -67,5 +63,4 @@ int main()
assert(std::move(opt).value_or(Y(3)) == 4);
assert(!opt);
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp
index d51f18abbd28..4a008dce2386 100644
--- a/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// template <class U> constexpr T optional<T>::value_or(U&& v) const&;
@@ -15,8 +16,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct Y
@@ -37,11 +36,8 @@ struct X
{return x.i_ == y.i_;}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
constexpr optional<X> opt(2);
constexpr Y y(3);
@@ -78,5 +74,4 @@ int main()
const optional<X> opt;
assert(opt.value_or(Y(3)) == 4);
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp b/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp
index d24a2d06b9d5..620dda19e3ff 100644
--- a/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp
+++ b/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// XFAIL: libcpp-no-exceptions
// <optional>
@@ -18,8 +19,6 @@
#include <type_traits>
#include <cassert>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
class X
@@ -63,12 +62,8 @@ public:
friend void swap(Z& x, Z& y) {throw 6;}
};
-
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
{
optional<int> opt1;
optional<int> opt2;
@@ -303,5 +298,4 @@ int main()
assert(static_cast<bool>(opt2) == true);
assert(*opt2 == 2);
}
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp b/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp
index 6999cf2451f1..02c0a3a63a5e 100644
--- a/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp
+++ b/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// T shall be an object type and shall satisfy the requirements of Destructible
@@ -15,11 +16,7 @@
int main()
{
-#if _LIBCPP_STD_VER > 11
using std::experimental::optional;
optional<const void> opt;
-#else
-#error
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp b/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp
index 61470af01195..da8bd05f2c9b 100644
--- a/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp
+++ b/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp
@@ -7,14 +7,13 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// T shall be an object type and shall satisfy the requirements of Destructible
#include <experimental/optional>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -23,13 +22,7 @@ private:
~X() {}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
optional<X> opt;
-#else
-#error
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp b/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp
index eaee02014c2f..7aa179afeaf6 100644
--- a/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp
+++ b/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp
@@ -7,14 +7,13 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// T shall be an object type and shall satisfy the requirements of Destructible
#include <experimental/optional>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
struct X
@@ -22,13 +21,7 @@ struct X
~X() noexcept(false) {}
};
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
optional<X> opt;
-#else
-#error
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/optional_void.fail.cpp b/test/std/experimental/optional/optional.object/optional_void.fail.cpp
index f911e9a2d6d4..73f689c56720 100644
--- a/test/std/experimental/optional/optional.object/optional_void.fail.cpp
+++ b/test/std/experimental/optional/optional.object/optional_void.fail.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// T shall be an object type and shall satisfy the requirements of Destructible
@@ -15,11 +16,7 @@
int main()
{
-#if _LIBCPP_STD_VER > 11
using std::experimental::optional;
optional<void> opt;
-#else
-#error
-#endif // _LIBCPP_STD_VER > 11
}
diff --git a/test/std/experimental/optional/optional.object/types.pass.cpp b/test/std/experimental/optional/optional.object/types.pass.cpp
index 8b9ad2e19570..af8da2df8fd5 100644
--- a/test/std/experimental/optional/optional.object/types.pass.cpp
+++ b/test/std/experimental/optional/optional.object/types.pass.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: c++98, c++03, c++11
// <optional>
// template <class T>
@@ -19,8 +20,6 @@
#include <experimental/optional>
#include <type_traits>
-#if _LIBCPP_STD_VER > 11
-
using std::experimental::optional;
template <class Opt, class T>
@@ -30,14 +29,10 @@ test()
static_assert(std::is_same<typename Opt::value_type, T>::value, "");
}
-#endif // _LIBCPP_STD_VER > 11
-
int main()
{
-#if _LIBCPP_STD_VER > 11
test<optional<int>, int>();
test<optional<const int>, const int>();
test<optional<double>, double>();
test<optional<const double>, const double>();
-#endif // _LIBCPP_STD_VER > 11
}