58 lines
1.3 KiB
C++
58 lines
1.3 KiB
C++
//-----------------------------------------------------------------------------
|
|
// 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();
|
|
}
|