菜鸟笔记
提升您的技术认知

[boost库] boost-ag真人游戏

是什么

boost_auto和boost_typeof属于,是用于类型推导的宏定义

怎么用

boost_auto

boost_auto(a, b) 声明一个类型为表达式b类型的变量a,并且用表达式b初始化a

void boost_auto(std::vector &v){
  
    boost_auto(test, v.begin());
    for(; test != v.end(); test  ){
  
        std::cout << *test << std::endl;
    }
}

其实boost_auto也是调用的boost_typeof
#define boost_auto(var, expr) boost_typeof(expr) var = expr

boost_typeof

boost_typeof(b) a 推导出表达式b的类型,并且声明该类型的一个变量a,可以初始化也可以不初始化。

void boost_typeof(std::vector &v){
  
    boost_typeof(v.begin()) test = v.begin(); // boost_auto(test, v.begin()) 两者一样
    for(; test != v.end(); test  ){
  
        std::cout << *test << std::endl;
    }
}

一些联系

//boost_auto 相当于c  11的 auto 关键字
auto test = v.begin();
//boost_typeof 相当于c  11的 decltype 关键字
decltype(v.begin()) test = v.begin();
网站地图