#include<boost/typeof/typeof.hpp>
#include<vector>
#include<iostream>
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() //为了注册新的数据类型
using namespace std;
namespace ex{ //定义新的数据类型
struct demo_class
{
int a,b;
};
BOOST_TYPEOF_REGISTER_TYPE(ex::demo_class) //向typeof库注册类
}
vector<string> func()
{
vector<string> v(10,"气死你气死你");//返回vector<string>的函数
return v;
}
int main()
{
BOOST_TYPEOF(2.0*3) x=2.0*3;//推导类型位double,并将结果赋值给x
cout<<x<<endl;
BOOST_AUTO(y,2+3);//推导类型为int,并将结果赋值给y
cout<<y<<endl;
BOOST_AUTO(a,new double[20]);//推导a的类型为double *a,并使a指向分配的内存空间首地址
a[1]=20.0;
cout<<sizeof(a)<<endl;//空间大小为20
cout<<a[1]<<endl;
BOOST_AUTO(p,make_pair(1,"string"));//推导p的类型为pair,并将(1,“string”)赋值给p
cout<<p.second<<endl;//输出string
BOOST_AUTO(v,func());//推导v的类型为vector<string>,并将数据完整赋值给v
v.push_back("just for test");
vector
boost中自动确定数据类型(BOOST_TYPEOF和BOOST_AUTO)的使用
最新推荐文章于 2022-05-19 08:45:19 发布