summaryrefslogtreecommitdiff
path: root/test/std/experimental/optional/optional.object/optional.object.ctor
diff options
context:
space:
mode:
Diffstat (limited to 'test/std/experimental/optional/optional.object/optional.object.ctor')
-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
6 files changed, 13 insertions, 46 deletions
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 7d401de1d9789..144af2e3a7dc7 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 6a1763de22bd6..d24a1ac69b866 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 014ee859e8a97..dc1666b103625 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 7a98e0bf31f3e..9bd6b18989fc9 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 40d55f9189933..851157f960f91 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 c307a2e1e258b..40c96581ed847 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
}