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

  • 相关阅读:
    LPC1768基本输入输出GPIO使用
    LPC1768IAP(详解,有上位机)
    STM32_IAP详解(有代码,有上位机)
    ucos2.86的任务调度漏洞
    ucos任务优先级从64到256,任务就绪表的改变
    ucos互斥信号量解决优先级反转问题
    ucos信号量集源码分析
    ucos内存管理原理详解
    ucos队列的实现--源码分析
    ucos调度器详解
  • 原文地址:https://www.cnblogs.com/cutepig/p/1826506.html
Copyright © 2011-2022 走看看