zoukankan      html  css  js  c++  java
  • boost的Any库学习

    http://www.stlchina.org/twiki/bin/view.pl/Main/BoostSource_any  ppLiu写的关于这个的文章

    下面是实例代码

    1.

    int main()
    {
        boost::any a;
        a = std::string("aaaa");

        try
        {
            int val = boost::any_cast<int>(a);
            std::cout<<val<<std::endl;
        }
        catch(boost::bad_any_cast& b)
        {
            std::cout<<"error!"<<std::endl;
        }
       
    }

    2.

    #include <iostream>
    #include <string>
    #include <utility>
    #include <vector>
    #include <boost/any.hpp>

    class A
    {
    public:
        void some_function() {std::cout<<"A::some_function()"<<std::endl;}
    };

    class B
    {
    public:
        void some_function() {std::cout<<"B::some_function()"<<std::endl;}   
    };

    class C
    {
    public:
        void some_function() {std::cout<<"C::some_function()"<<std::endl;}
    };

    void print_any(boost::any& a)
    {
        if(A* pA = boost::any_cast<A>(&a))
        {
            pA->some_function();
        }
       
        else if(B* pB = boost::any_cast<B>(&a))
        {
            pB->some_function();
        }
       
        else if(C* pC = boost::any_cast<C>(&a))
        {
            pC->some_function();
        }
       
        else
        {
            try
            {
                std::cout<<boost::any_cast<std::string>(a)<<std::endl;
            }
            catch(boost::bad_any_cast& b)
            {
                std::cout<<"Oops!"<<std::endl;
            }
        }

    }

    int main()
    {
        std::vector<boost::any> store_anything;
        store_anything.push_back(A());
        store_anything.push_back(B());
        store_anything.push_back(C());
        store_anything.push_back(std::string("love"));
        store_anything.push_back(3);
        store_anything.push_back(std::make_pair(true, 7.92));

        std::for_each(store_anything.begin(), store_anything.end(), print_any);
    }

    3.

  • 相关阅读:
    Unity核心对象模型
    自适应XAML布局经验总结 (四)区域布局设计模式
    自适应XAML布局经验总结 (三) 局部布局设计模式2
    自适应XAML布局经验总结 (二) 局部布局设计模式1
    自适应XAML布局经验总结 (一)原则和页面结构设计
    WPF核心对象模型-类图和解析
    谈谈XAML前端开发
    arpg网页游戏特效播放(一)
    arpg网页游戏之地图(四)
    arpg网页游戏之地图(三)
  • 原文地址:https://www.cnblogs.com/kex1n/p/2286550.html
Copyright © 2011-2022 走看看