os/ossrv/stdcpp/tsrc/Boost_test/variant/src/test6.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200 (2012-06-15)
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
//-----------------------------------------------------------------------------
sl@0
     2
// boost-libs variant/test/test6.cpp header file
sl@0
     3
// See http://www.boost.org for updates, documentation, and revision history.
sl@0
     4
//-----------------------------------------------------------------------------
sl@0
     5
//
sl@0
     6
// Copyright (c) 2003
sl@0
     7
// Eric Friedman, Itay Maman
sl@0
     8
//
sl@0
     9
// Distributed under the Boost Software License, Version 1.0. (See
sl@0
    10
// accompanying file LICENSE_1_0.txt or copy at
sl@0
    11
// http://www.boost.org/LICENSE_1_0.txt)
sl@0
    12
/*
sl@0
    13
 * © Portions copyright (c) 2006-2007 Nokia Corporation.  All rights reserved.
sl@0
    14
*/
sl@0
    15
sl@0
    16
#include "boost/test/minimal.hpp"
sl@0
    17
#include "boost/variant.hpp"
sl@0
    18
sl@0
    19
#include <iostream>
sl@0
    20
sl@0
    21
#include "jobs.h"
sl@0
    22
#ifdef __SYMBIAN32__
sl@0
    23
#include "std_log_result.h"
sl@0
    24
#define LOG_FILENAME_LINE __FILE__, __LINE__
sl@0
    25
#endif
sl@0
    26
sl@0
    27
//Just Another Class
sl@0
    28
struct jac
sl@0
    29
{
sl@0
    30
   jac() { }
sl@0
    31
   jac(int ) { }
sl@0
    32
   jac(const char* ) { }
sl@0
    33
};
sl@0
    34
sl@0
    35
std::ostream& operator<<(std::ostream& out, const jac& )
sl@0
    36
{
sl@0
    37
   out << "jac ";
sl@0
    38
   return out;
sl@0
    39
}
sl@0
    40
sl@0
    41
sl@0
    42
void run()
sl@0
    43
{
sl@0
    44
   using boost::variant;
sl@0
    45
sl@0
    46
   variant<jac, int, double*, const double*> v1;   
sl@0
    47
   variant<int, char, double*, const double*, char*> v2;
sl@0
    48
sl@0
    49
   v1 = v2;
sl@0
    50
sl@0
    51
   verify(v1, spec<int>());
sl@0
    52
   verify(v2, spec<int>());
sl@0
    53
sl@0
    54
   verify_not(v1, spec<jac>());
sl@0
    55
   verify_not(v1, spec<double*>());
sl@0
    56
   verify_not(v1, spec<const double*>());
sl@0
    57
sl@0
    58
   verify_not(v2, spec<char>());
sl@0
    59
   verify_not(v2, spec<double*>());
sl@0
    60
   verify_not(v2, spec<const double*>());
sl@0
    61
   verify_not(v2, spec<char*>());
sl@0
    62
sl@0
    63
sl@0
    64
   variant<jac, const double*> v3;
sl@0
    65
   variant<int, unsigned char, double*> v4;
sl@0
    66
sl@0
    67
   v3 = v4;
sl@0
    68
   verify(v3, spec<jac>());
sl@0
    69
   verify(v4, spec<int>());
sl@0
    70
   verify_not(v4, spec<unsigned char>());
sl@0
    71
}
sl@0
    72
sl@0
    73
sl@0
    74
sl@0
    75
int test_main(int , char* [])
sl@0
    76
{
sl@0
    77
std_log(LOG_FILENAME_LINE,"[Test Case for test6]");
sl@0
    78
   run();
sl@0
    79
#ifdef __SYMBIAN32__
sl@0
    80
   	testResultXml("test6");
sl@0
    81
	close_log_file();
sl@0
    82
#endif
sl@0
    83
   return 0;
sl@0
    84
}
sl@0
    85