zoukankan      html  css  js  c++  java
  • test boost::fusion

    // testBoost.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"

    #if 1

    #include <boost/fusion/sequence.hpp>
    #include <boost/fusion/include/sequence.hpp>
    #include <boost/fusion/include/vector.hpp>
    #include <string>
    #include <iostream>
    #include <boost/fusion/algorithm.hpp>
    #include <boost/fusion/include/algorithm.hpp>
    #include <boost/fusion/support/is_sequence.hpp>
    #include <boost/fusion/include/is_sequence.hpp>

    template <bool IsSeq> struct print_xml;

    template <>
    struct print_xml<false>
    {
        template <typename T>
        void operator()(T const& x) const
        {
            std::cout
                << '<' << typeid(x).name() << '>'
                << x
                << "</" << typeid(x).name() << ">\n"
                ;
        }
    };

    template <>
    struct print_xml<true>
    {
        template <typename T>
        void operator()(T const& x) const
        {
      boost::fusion::for_each(x, value_printer());
        }
    };

    struct value_printer
    {
        template< typename T > void operator()(T const& x) const
        {
            print_xml<boost::fusion::traits::is_sequence<T>::value > printXml;
      printXml(x);
        }
    };

    int _tmain(int argc, _TCHAR* argv[])
    {
     typedef boost::fusion::vector<int, char, std::string> Stuff;
     Stuff stuff(1, 'x', "howdy");
     boost::fusion::vector<int, char, Stuff> stuff2(2, 'y', stuff);

     int i = boost::fusion::at_c<0>(stuff);
     char ch = boost::fusion::at_c<1>(stuff);
     std::string s = boost::fusion::at_c<2>(stuff);

     //boost::fusion::for_each(stuff, print_xml());
     value_printer()(stuff2);

     return 0;
    }

    #endif

  • 相关阅读:
    第一阶段
    堆栈的内容------全局变量(实例变量)---静态变量等等
    this和引用变量的地址值是同一个---------new后面的是构造方法
    引用数据类型的传递,那个值先输出,后面的也同样是同一个值
    基本数据类型的传递,参数传递的是具体的值
    构造方法和构造代码块
    装饰器初识
    Bootstrap框架
    Django ORM那些相关操作
    jQuery
  • 原文地址:https://www.cnblogs.com/cutepig/p/1826506.html
Copyright © 2011-2022 走看看