1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- //-----------------------------------------------------------------------------
- // 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();
- }
|