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

  • 相关阅读:
    poj 3125 Printer Queue(STL注意事项)
    poj 2823 Sliding Window (STL超时版)
    poj 1088 滑雪 详解
    poj 2983 Is the Information Reliable?
    poj 2524 Ubiquitous Religions (STL与非STL的对比)
    高精度算法集合
    zTree v2.6 v3.0 初始化 / 方法对比
    下面是关于rownum的介绍(oracle)
    web性能优化
    jQueryEasyui,DataGrid几个常用的操作
  • 原文地址:https://www.cnblogs.com/cutepig/p/1826506.html
Copyright © 2011-2022 走看看