Move <optional> into include/experimental, and into the std::experimental namespace, since it's not part of C++14, but of an upcoming TS
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@194867 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		| @@ -11,12 +11,14 @@ | ||||
|  | ||||
| // constexpr optional(const T& v); | ||||
|  | ||||
| #include <optional> | ||||
| #include <experimental/optional> | ||||
| #include <type_traits> | ||||
| #include <cassert> | ||||
|  | ||||
| #if _LIBCPP_STD_VER > 11 | ||||
|  | ||||
| using std::experimental::optional; | ||||
|  | ||||
| class X | ||||
| { | ||||
|     int i_; | ||||
| @@ -52,12 +54,12 @@ int main() | ||||
|     { | ||||
|         typedef int T; | ||||
|         constexpr T t(5); | ||||
|         constexpr std::optional<T> opt(t); | ||||
|         constexpr optional<T> opt(t); | ||||
|         static_assert(static_cast<bool>(opt) == true, ""); | ||||
|         static_assert(*opt == 5, ""); | ||||
|  | ||||
|         struct test_constexpr_ctor | ||||
|             : public std::optional<T> | ||||
|             : public optional<T> | ||||
|         { | ||||
|             constexpr test_constexpr_ctor(const T&) {} | ||||
|         }; | ||||
| @@ -66,12 +68,12 @@ int main() | ||||
|     { | ||||
|         typedef double T; | ||||
|         constexpr T t(3); | ||||
|         constexpr std::optional<T> opt(t); | ||||
|         constexpr optional<T> opt(t); | ||||
|         static_assert(static_cast<bool>(opt) == true, ""); | ||||
|         static_assert(*opt == 3, ""); | ||||
|  | ||||
|         struct test_constexpr_ctor | ||||
|             : public std::optional<T> | ||||
|             : public optional<T> | ||||
|         { | ||||
|             constexpr test_constexpr_ctor(const T&) {} | ||||
|         }; | ||||
| @@ -80,19 +82,19 @@ int main() | ||||
|     { | ||||
|         typedef X T; | ||||
|         const T t(3); | ||||
|         std::optional<T> opt(t); | ||||
|         optional<T> opt(t); | ||||
|         assert(static_cast<bool>(opt) == true); | ||||
|         assert(*opt == 3); | ||||
|     } | ||||
|     { | ||||
|         typedef Y T; | ||||
|         constexpr T t(3); | ||||
|         constexpr std::optional<T> opt(t); | ||||
|         constexpr optional<T> opt(t); | ||||
|         static_assert(static_cast<bool>(opt) == true, ""); | ||||
|         static_assert(*opt == 3, ""); | ||||
|  | ||||
|         struct test_constexpr_ctor | ||||
|             : public std::optional<T> | ||||
|             : public optional<T> | ||||
|         { | ||||
|             constexpr test_constexpr_ctor(const T&) {} | ||||
|         }; | ||||
| @@ -103,7 +105,7 @@ int main() | ||||
|         try | ||||
|         { | ||||
|             const T t(3); | ||||
|             std::optional<T> opt(t); | ||||
|             optional<T> opt(t); | ||||
|             assert(false); | ||||
|         } | ||||
|         catch (int i) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Marshall Clow
					Marshall Clow