/*
C++11引入类型自动推断,auto关键字可自动推断,但auto定义的变量必须有初始值
新特性中还有decltype关键字,其是以表达式作为参数,返回该表达式的类型,并且decltype不会对表达式求值
BOOST_TYPEOF宏 与decltype类似,BOOST_TYPEOF使用一个表达式作为宏的参数,推导出表达式Expr类型。
头文件#include<boost/typeof/typeof.hpp>
BOOST_AUTO宏 与auto类似,BOOST_AUTO推导出表达式的类型,然后用这个类型声明变量Var,并将表达式赋值给Var
BOOST_AUTO实际上调用了BOOST_TYPEOF
#define BOOST_AUTO(Var,Expr) BOOST_TYPEOF(Expr) Var = Expr;
*/
#include<iostream>
// BOOST_TYPEOF库的头文件
#include<boost/typeof/typeof.hpp>
using namespace std;
int main()
{
auto a = 100;
// 打印出类型
cout << typeid(a).name() << endl;
decltype(1.2345f) b;
cout << typeid(b).name() << endl;
decltype(a++) c;
cout << typeid(c).name() << endl;
decltype(&c) d;
cout << typeid(d).name() << endl;
cout <<endl << "BOOST_TYPEOF" << endl;
BOOST_TYPEOF(1.23456) bb; //和decltype类似
cout << typeid(bb).name() << endl;
cout << endl << "BOOST_AUTO" << endl;
BOOST_AUTO(f, "sdddef"); // 利用BOOST_TYPEOF定义变量 + 初始化
cout << f << " " << typeid(f).name() << endl;
for (BOOST_AUTO(i, 0); i < 10; i++) {
cout << "1 " ;
}
return 0;
}
C++ Boost库【3】 --类型推导
小侯不躺平.2026-05-14 11:32
相关推荐
小小龙学IT6 分钟前
libuv 开源异步 I/O 事件循环库深度解析:Node.js 的心脏,C++ 高性能网络程序的引擎彷徨而立14 分钟前
【C/C++】多线程读写普通 int 变量的一些问题(二)一只旭宝17 分钟前
五种线程池设计luj_176822 分钟前
毒素驱动的生物自毁机制探析某林21225 分钟前
机器人收不住、转不动?执行器死区的原理与三层补偿设计海兰30 分钟前
【 Python 量化交易】第6章:数据可视化多多鼠31 分钟前
Tool Calling的信任边界:从协议校验到执行沙箱的完整链路设计啊阿狸不会拉杆34 分钟前
《计算机网络-自顶向下方法》1.5 协议层次及其服务模型 读书笔记tryxr40 分钟前
Chat2Excel 项目通用服务开发Jazz_z1 小时前
使用 Python 合并与取消合并 Excel 单元格