123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- //-----------------------------------------------------------------------------
- // boost-libs variant/test/test4.cpp source 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/config.hpp"
- #ifdef BOOST_MSVC
- #pragma warning(disable:4244) // conversion from 'const int' to 'const short'
- #endif
- #include "boost/core/lightweight_test.hpp"
- #include "boost/variant.hpp"
- #include "jobs.h"
- #include <string>
- struct class_a;
- using boost::variant;
- typedef variant<std::string, class_a, float> var_type_1;
- typedef variant<std::string, class_a, short> var_type_2;
- #include "class_a.h"
- int main()
- {
- using namespace boost;
- var_type_1 v1;
- var_type_2 v2;
- v1 = class_a();
- verify(v1, spec<class_a>(), "[V] class_a(5511)");
- verify(v2, spec<std::string>(), "[V] ");
- v2 = "abcde";
- verify(v2, spec<std::string>(), "[V] abcde");
- v2 = v1;
- verify(v2, spec<class_a>(), "[V] class_a(5511)");
- v2 = 5;
- v1 = v2;
- return boost::report_errors();
- }
|