发布时间:2012-12-17 11:22:16
boost::any的设计理念是做成一个通用类型存储器。基于这个理念,上层应用就不需要关心容器里面所存储的数据类型是什么了。这里我不打算讲boost::any的应用,具体的应用大家可以google即可。我想讲的是boost::any在设计上的技巧,这跟设计模式相关。boost::any类并不是一个模板类,这可以大大的方便上层应用的使用,它会自动化的类型转换。核心就是any类中,包含一个模板类holder的基类placeholder指针,而placeholder却不是模板类,这样就可以被any类使用了。具体的如下面所示: 点击(此处)折叠或打开class any{public : &......【阅读全文】
发布时间:2012-12-17 10:36:19
[转]Boost Any与VariantBoost库中提供了三种比较实用的数据结构,分别是tuple、any和variant。它们的共同优点就是支持类型安全地存储和获取数据。灵活地使用这三种数据结构,对我们进行程序设计无疑是大有裨益的。下面分别加以介绍。tuple支持一次直接声明和使用n个不同数据类型的变量。对于有多个返回值的函数,我们再也不用定义一个结构体作为函数的返回值类型了,也不用通过对参数进行引用来传出返回值(这样返回值的概念不太明确),而是可以直接使用tuple。◆ 声明一个tuple类型的对象:tuple<int,double,string> triple(42, 3.......【阅读全文】