aboutsummaryrefslogtreecommitdiff
path: root/test/std/utilities/optional
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-04-20 21:21:10 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-04-20 21:21:10 +0000
commit1c3313bd0215c89fb38710a1ea0762ccf32e859c (patch)
tree65e6d33ca6254b41a8f4230edff47c5344dbd019 /test/std/utilities/optional
parent0dc0969cd0a732760f0aa79942a04e0eaef297c4 (diff)
downloadsrc-1c3313bd0215c89fb38710a1ea0762ccf32e859c.tar.gz
src-1c3313bd0215c89fb38710a1ea0762ccf32e859c.zip
Vendor import of libc++ trunk r300890:vendor/libc++/libc++-trunk-r300890
Notes
Notes: svn path=/vendor/libc++/dist/; revision=317224 svn path=/vendor/libc++/libc++-trunk-r300890/; revision=317225; tag=vendor/libc++/libc++-trunk-r300890
Diffstat (limited to 'test/std/utilities/optional')
-rw-r--r--test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp4
-rw-r--r--test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp4
-rw-r--r--test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp4
-rw-r--r--test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp4
-rw-r--r--test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp4
-rw-r--r--test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp4
-rw-r--r--test/std/utilities/optional/optional.hash/hash.pass.cpp12
-rw-r--r--test/std/utilities/optional/optional.relops/equal.pass.cpp2
-rw-r--r--test/std/utilities/optional/optional.relops/greater_equal.pass.cpp2
-rw-r--r--test/std/utilities/optional/optional.relops/greater_than.pass.cpp2
-rw-r--r--test/std/utilities/optional/optional.relops/less_equal.pass.cpp2
-rw-r--r--test/std/utilities/optional/optional.relops/less_than.pass.cpp2
-rw-r--r--test/std/utilities/optional/optional.relops/not_equal.pass.cpp2
13 files changed, 26 insertions, 22 deletions
diff --git a/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp b/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp
index 29fb7a8431f1..dc69739271b5 100644
--- a/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp
+++ b/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp
@@ -10,8 +10,8 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator==(const optional<T>& x, const T& v);
-// template <class T> constexpr bool operator==(const T& v, const optional<T>& x);
+// template <class T, class U> constexpr bool operator==(const optional<T>& x, const U& v);
+// template <class T, class U> constexpr bool operator==(const U& v, const optional<T>& x);
#include <optional>
diff --git a/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp b/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp
index ae34eb20517e..e1bad12e3f69 100644
--- a/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp
+++ b/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp
@@ -10,8 +10,8 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator>(const optional<T>& x, const T& v);
-// template <class T> constexpr bool operator>(const T& v, const optional<T>& x);
+// template <class T, class U> constexpr bool operator>(const optional<T>& x, const U& v);
+// template <class T, class U> constexpr bool operator>(const U& v, const optional<T>& x);
#include <optional>
diff --git a/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp b/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp
index dac94002661f..342ddffc2c79 100644
--- a/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp
+++ b/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp
@@ -10,8 +10,8 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator>=(const optional<T>& x, const T& v);
-// template <class T> constexpr bool operator>=(const T& v, const optional<T>& x);
+// template <class T, class U> constexpr bool operator>=(const optional<T>& x, const U& v);
+// template <class T, class U> constexpr bool operator>=(const U& v, const optional<T>& x);
#include <optional>
diff --git a/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp b/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp
index b71f8363b0a6..bcf6afcc6bfb 100644
--- a/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp
+++ b/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp
@@ -10,8 +10,8 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator<=(const optional<T>& x, const T& v);
-// template <class T> constexpr bool operator<=(const T& v, const optional<T>& x);
+// template <class T, class U> constexpr bool operator<=(const optional<T>& x, const U& v);
+// template <class T, class U> constexpr bool operator<=(const U& v, const optional<T>& x);
#include <optional>
diff --git a/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp b/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp
index 84456b3baa6e..3d5e2144a967 100644
--- a/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp
+++ b/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp
@@ -10,8 +10,8 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator<(const optional<T>& x, const T& v);
-// template <class T> constexpr bool operator<(const T& v, const optional<T>& x);
+// template <class T, class U> constexpr bool operator<(const optional<T>& x, const U& v);
+// template <class T, class U> constexpr bool operator<(const U& v, const optional<T>& x);
#include <optional>
diff --git a/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp b/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
index a4ffdc25e721..7da9b7ba7a03 100644
--- a/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
+++ b/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
@@ -10,8 +10,8 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator!=(const optional<T>& x, const T& v);
-// template <class T> constexpr bool operator!=(const T& v, const optional<T>& x);
+// template <class T, class U> constexpr bool operator!=(const optional<T>& x, const U& v);
+// template <class T, class U> constexpr bool operator!=(const U& v, const optional<T>& x);
#include <optional>
diff --git a/test/std/utilities/optional/optional.hash/hash.pass.cpp b/test/std/utilities/optional/optional.hash/hash.pass.cpp
index 8c91d6da761e..b4a1832cdc0a 100644
--- a/test/std/utilities/optional/optional.hash/hash.pass.cpp
+++ b/test/std/utilities/optional/optional.hash/hash.pass.cpp
@@ -26,7 +26,7 @@ namespace std {
template <>
struct hash<B> {
- size_t operator()(B const&) noexcept(false) { return 0; }
+ size_t operator()(B const&) TEST_NOEXCEPT_FALSE { return 0; }
};
}
@@ -37,10 +37,16 @@ int main()
const std::size_t nullopt_hash =
std::hash<optional<double>>{}(optional<double>{});
+
+ {
+ optional<B> opt;
+ ASSERT_NOT_NOEXCEPT(std::hash<optional<B>>()(opt));
+ ASSERT_NOT_NOEXCEPT(std::hash<optional<const B>>()(opt));
+ }
+
{
typedef int T;
optional<T> opt;
- ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt));
assert(std::hash<optional<T>>{}(opt) == nullopt_hash);
opt = 2;
assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));
@@ -48,7 +54,6 @@ int main()
{
typedef std::string T;
optional<T> opt;
- ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt));
assert(std::hash<optional<T>>{}(opt) == nullopt_hash);
opt = std::string("123");
assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));
@@ -56,7 +61,6 @@ int main()
{
typedef std::unique_ptr<int> T;
optional<T> opt;
- ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt));
assert(std::hash<optional<T>>{}(opt) == nullopt_hash);
opt = std::unique_ptr<int>(new int(3));
assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));
diff --git a/test/std/utilities/optional/optional.relops/equal.pass.cpp b/test/std/utilities/optional/optional.relops/equal.pass.cpp
index 7667540f9760..0752841d3668 100644
--- a/test/std/utilities/optional/optional.relops/equal.pass.cpp
+++ b/test/std/utilities/optional/optional.relops/equal.pass.cpp
@@ -10,7 +10,7 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator==(const optional<T>& x, const optional<T>& y);
+// template <class T, class U> constexpr bool operator==(const optional<T>& x, const optional<U>& y);
#include <optional>
#include <type_traits>
diff --git a/test/std/utilities/optional/optional.relops/greater_equal.pass.cpp b/test/std/utilities/optional/optional.relops/greater_equal.pass.cpp
index 0e05834c147a..f475f3796916 100644
--- a/test/std/utilities/optional/optional.relops/greater_equal.pass.cpp
+++ b/test/std/utilities/optional/optional.relops/greater_equal.pass.cpp
@@ -10,7 +10,7 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator>= (const optional<T>& x, const optional<T>& y);
+// template <class T, class U> constexpr bool operator>= (const optional<T>& x, const optional<U>& y);
#include <optional>
diff --git a/test/std/utilities/optional/optional.relops/greater_than.pass.cpp b/test/std/utilities/optional/optional.relops/greater_than.pass.cpp
index 3946a6102ba9..c3f2af9323ab 100644
--- a/test/std/utilities/optional/optional.relops/greater_than.pass.cpp
+++ b/test/std/utilities/optional/optional.relops/greater_than.pass.cpp
@@ -10,7 +10,7 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator> (const optional<T>& x, const optional<T>& y);
+// template <class T, class U> constexpr bool operator> (const optional<T>& x, const optional<U>& y);
#include <optional>
diff --git a/test/std/utilities/optional/optional.relops/less_equal.pass.cpp b/test/std/utilities/optional/optional.relops/less_equal.pass.cpp
index 5a1954154f44..35e80d3d4e50 100644
--- a/test/std/utilities/optional/optional.relops/less_equal.pass.cpp
+++ b/test/std/utilities/optional/optional.relops/less_equal.pass.cpp
@@ -10,7 +10,7 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator<= (const optional<T>& x, const optional<T>& y);
+// template <class T, class U> constexpr bool operator<= (const optional<T>& x, const optional<U>& y);
#include <optional>
diff --git a/test/std/utilities/optional/optional.relops/less_than.pass.cpp b/test/std/utilities/optional/optional.relops/less_than.pass.cpp
index 35956e6f4a70..1dbffbd92352 100644
--- a/test/std/utilities/optional/optional.relops/less_than.pass.cpp
+++ b/test/std/utilities/optional/optional.relops/less_than.pass.cpp
@@ -10,7 +10,7 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator< (const optional<T>& x, const optional<T>& y);
+// template <class T, class U> constexpr bool operator< (const optional<T>& x, const optional<U>& y);
#include <optional>
diff --git a/test/std/utilities/optional/optional.relops/not_equal.pass.cpp b/test/std/utilities/optional/optional.relops/not_equal.pass.cpp
index 1256537d6a86..12d9922a9592 100644
--- a/test/std/utilities/optional/optional.relops/not_equal.pass.cpp
+++ b/test/std/utilities/optional/optional.relops/not_equal.pass.cpp
@@ -10,7 +10,7 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// template <class T> constexpr bool operator!=(const optional<T>& x, const optional<T>& y);
+// template <class T, class U> constexpr bool operator!=(const optional<T>& x, const optional<U>& y);
#include <optional>
#include <type_traits>