summaryrefslogtreecommitdiff
path: root/src/third_party/variant-1.4.0/test/ctor.fwd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/variant-1.4.0/test/ctor.fwd.cpp')
-rw-r--r--src/third_party/variant-1.4.0/test/ctor.fwd.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/third_party/variant-1.4.0/test/ctor.fwd.cpp b/src/third_party/variant-1.4.0/test/ctor.fwd.cpp
new file mode 100644
index 00000000000..45f835685d1
--- /dev/null
+++ b/src/third_party/variant-1.4.0/test/ctor.fwd.cpp
@@ -0,0 +1,52 @@
+// MPark.Variant
+//
+// Copyright Michael Park, 2015-2017
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <mpark/variant.hpp>
+
+#include <string>
+
+#include <gtest/gtest.h>
+
+TEST(Ctor_Fwd, Direct) {
+ mpark::variant<int, std::string> v(42);
+ EXPECT_EQ(42, mpark::get<int>(v));
+
+ /* constexpr */ {
+ constexpr mpark::variant<int, const char *> cv(42);
+ static_assert(42 == mpark::get<int>(cv), "");
+ }
+}
+
+TEST(Ctor_Fwd, DirectConversion) {
+ mpark::variant<int, std::string> v("42");
+ EXPECT_EQ("42", mpark::get<std::string>(v));
+
+ /* constexpr */ {
+ constexpr mpark::variant<int, const char *> cv(1.1);
+ static_assert(1 == mpark::get<int>(cv), "");
+ }
+}
+
+TEST(Ctor_Fwd, CopyInitialization) {
+ mpark::variant<int, std::string> v = 42;
+ EXPECT_EQ(42, mpark::get<int>(v));
+
+ /* constexpr */ {
+ constexpr mpark::variant<int, const char *> cv = 42;
+ static_assert(42 == mpark::get<int>(cv), "");
+ }
+}
+
+TEST(Ctor_Fwd, CopyInitializationConversion) {
+ mpark::variant<int, std::string> v = "42";
+ EXPECT_EQ("42", mpark::get<std::string>(v));
+
+ /* constexpr */ {
+ constexpr mpark::variant<int, const char *> cv = 1.1;
+ static_assert(1 == mpark::get<int>(cv), "");
+ }
+}