Move <optional> into include/experimental, and into the std::experimental namespace, since it's not part of C++14, but of an upcoming TS

llvm-svn: 194867
diff --git a/libcxx/test/utilities/optional/optional.hash/hash.pass.cpp b/libcxx/test/utilities/optional/optional.hash/hash.pass.cpp
index 406632a..ca23d78 100644
--- a/libcxx/test/utilities/optional/optional.hash/hash.pass.cpp
+++ b/libcxx/test/utilities/optional/optional.hash/hash.pass.cpp
@@ -11,38 +11,37 @@
 
 // template <class T> struct hash<optional<T>>;
 
-#include <optional>
+#include <experimental/optional>
 #include <string>
 #include <memory>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
-#endif  // _LIBCPP_STD_VER > 11
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
+	using std::experimental::optional;
+
     {
         typedef int T;
-        std::optional<T> opt;
-        assert(std::hash<std::optional<T>>{}(opt) == 0);
+        optional<T> opt;
+        assert(std::hash<optional<T>>{}(opt) == 0);
         opt = 2;
-        assert(std::hash<std::optional<T>>{}(opt) == std::hash<T>{}(*opt));
+        assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));
     }
     {
         typedef std::string T;
-        std::optional<T> opt;
-        assert(std::hash<std::optional<T>>{}(opt) == 0);
+        optional<T> opt;
+        assert(std::hash<optional<T>>{}(opt) == 0);
         opt = std::string("123");
-        assert(std::hash<std::optional<T>>{}(opt) == std::hash<T>{}(*opt));
+        assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));
     }
     {
         typedef std::unique_ptr<int> T;
-        std::optional<T> opt;
-        assert(std::hash<std::optional<T>>{}(opt) == 0);
+        optional<T> opt;
+        assert(std::hash<optional<T>>{}(opt) == 0);
         opt = std::unique_ptr<int>(new int(3));
-        assert(std::hash<std::optional<T>>{}(opt) == std::hash<T>{}(*opt));
+        assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));
     }
 #endif  // _LIBCPP_STD_VER > 11
 }