summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/variant/test/test6.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/boost/libs/variant/test/test6.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/boost/libs/variant/test/test6.cpp b/src/boost/libs/variant/test/test6.cpp
new file mode 100644
index 00000000..6a0c75d6
--- /dev/null
+++ b/src/boost/libs/variant/test/test6.cpp
@@ -0,0 +1,74 @@
+//-----------------------------------------------------------------------------
+// boost-libs variant/test/test6.cpp header file
+// See http://www.boost.org for updates, documentation, and revision history.
+//-----------------------------------------------------------------------------
+//
+// Copyright (c) 2003
+// Eric Friedman, Itay Maman
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include "boost/core/lightweight_test.hpp"
+#include "boost/variant.hpp"
+
+#include <iostream>
+
+#include "jobs.h"
+
+
+//Just Another Class
+struct jac
+{
+ jac() { }
+ jac(int ) { }
+ jac(const char* ) { }
+};
+
+std::ostream& operator<<(std::ostream& out, const jac& )
+{
+ out << "jac ";
+ return out;
+}
+
+
+void run()
+{
+ using boost::variant;
+
+ variant<jac, int, double*, const double*> v1;
+ variant<int, char, double*, const double*, char*> v2;
+
+ v1 = v2;
+
+ verify(v1, spec<int>());
+ verify(v2, spec<int>());
+
+ verify_not(v1, spec<jac>());
+ verify_not(v1, spec<double*>());
+ verify_not(v1, spec<const double*>());
+
+ verify_not(v2, spec<char>());
+ verify_not(v2, spec<double*>());
+ verify_not(v2, spec<const double*>());
+ verify_not(v2, spec<char*>());
+
+
+ variant<jac, const double*> v3;
+ variant<int, unsigned char, double*> v4;
+
+ v3 = v4;
+ verify(v3, spec<jac>());
+ verify(v4, spec<int>());
+ verify_not(v4, spec<unsigned char>());
+}
+
+
+
+int main()
+{
+ run();
+ return boost::report_errors();
+}
+