Update of /cvsroot/boost/boost/libs/fusion/test/sequence
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv10880/sequence

Added Files:
        variant.cpp 
Log Message:
adding tests for variant as adapted sequence

--- NEW FILE: variant.cpp ---
/*=============================================================================
    Copyright (c) 2001-2006 Joel de Guzman
    Copyright (c) 2005-2006 Dan Marsden

    Use, modification and distribution is subject to 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/fusion/sequence/adapted/variant.hpp>

#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/iterator/next.hpp>
#include <boost/fusion/iterator/prior.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/distance.hpp>
#include <boost/fusion/iterator/value_of.hpp>

#include <boost/detail/lightweight_test.hpp>
#include <boost/variant.hpp>

#include <boost/mpl/assert.hpp>

#include <boost/type_traits/is_same.hpp>

#include <string>

int main()
{
    namespace fusion = boost::fusion;
    typedef boost::variant<double, std::string> var_type;
    var_type var = "hello";
    BOOST_TEST(fusion::size(var) == 2);
    BOOST_TEST(fusion::distance(fusion::begin(var), fusion::end(var)) == 2);
    BOOST_TEST(*fusion::next(fusion::begin(var)) == "hello");
    BOOST_TEST(fusion::next(fusion::next(fusion::begin(var))) == 
fusion::end(var));
    BOOST_MPL_ASSERT((boost::is_same<
                      
fusion::result_of::value_of<fusion::result_of::begin<var_type>::type>::type, 
                      double>));
    BOOST_MPL_ASSERT((boost::is_same<
                      
fusion::result_of::value_of<fusion::result_of::next<fusion::result_of::begin<var_type>::type>::type>::type,
 
                      std::string>));
    return boost::report_errors();
}


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to