zoukankan      html  css  js  c++  java
  • boost learn notes

    boost learn notes

    boost learn notes

    Get Started

    example.cpp

    #include <boost/lambda/lambda.hpp>
    #include <iostream>
    #include <iterator>
    #include <algorithm>
    
    int main()
    {
        using namespace boost::lambda;
        typedef std::istream_iterator<int> in;
    
        std::for_each(
            in(std::cin), in(), std::cout << (_1 * 3) << " " );
    }
    
    

    Build it

    cl /EHsc /I <path-to-boost> example.cpp

    Run initcl if cl is not available.

    Run it

    echo 1 2 3 | example

    Further reading material

    boost::any

    以单个对象接受所有型别的数据,以any_cast取出数据。

    template<typename ValueType>
    ValueType * any_cast(any * operand)
    {
            return operand && operand->type() == typeid(ValueType) ? &static_cast<any::holder<ValueType> *>(operand->content)->held:0;
    }
    

    boost::type_traits

    type traits的动机是分派,已实现函数重载。

    is_array的简化版

    template<bool b_>  
    struct bool_type{  
        static const bool value = b_;  
    };  
      
    template<bool b_>  
    const bool bool_type<b_>::value;  
      
    template<typename T>  
    struct is_array : bool_type<false>{  
    };  
      
    template<typename T>  
    struct is_array<T[]>: bool_type<true>{  
    };  
      
    template<typename T, unsigned int N>  
    struct is_array<T[N]> : bool_type<true>{  
    };  
      
      
      
    int main()  
    {  
        bool is_1 = is_array<int[]>::value;  
        bool is_2 = is_array<int[5]>::value;  
        bool is_3 = is_array<int>::value;  
    } 
    

    Post by: Jalen Wang (转载请注明出处)

  • 相关阅读:
    BotVS开发基础—2.7 指标MACD
    BotVS开发基础—2.7 指标MA
    BotVS开发基础—2.5 策略交互
    BotVS开发基础—2.5 绘制图表
    BotVS开发基础—2.5 状态信息显示表格
    BotVS开发基础—2.4 获取订单、取消订单、获取未完成订单
    BotVS开发基础—2.3 下市价单 交易
    BotVS开发基础—2.2 下限价单 交易
    BotVS开发基础—2.1 账户、行情、K线、深度
    python的eval函数
  • 原文地址:https://www.cnblogs.com/jalenwang/p/3064233.html
Copyright © 2011-2022 走看看