带宏与波的成语?
宏:宽宏大量,宏图大展,宏伟大业,宏伟目标,宏图大志,宏才大略,博学宏才,宏图之志,宏伟壮观,气势恢宏,。
波:随波逐流,波浪涛天,一波三折,波光粼粼,活泼可爱,一波未平,波澜壮阔,推波助澜,波涛汹涌,暗送秋波,烟波浩渺,轩然大波,随波漂流,万顷泼涛,团结活泼。
宏的功能是什么?
宏和模板都是代码生成计数,但宏的代码生成更加黑科技。
宏相比模板比较大的差异如下:
宏可以定义对象
宏可以放在代码的任何位置。模板只支持模板类的使用,和模板函数的调用
我举个例子吧,Qt的Q_DECLARE_METATYPE宏
这个宏是什么功能呢?就是实现元编程,可以生成支持一个类型元信息的代码。
这个宏有什么作用呢?主要是为QVariant类服务的
QVariant类是个很神奇的类,它可以存入一个任意类型数据,只要那个类型提供默认构造函数和拷贝构造函数。然而它和容器类的区别是——
它不是模板类!
它不是模板类!
它不是模板类!
比如std::list<int>和std::list<double>并不是同一种类型,如果我要做一个类似数据总线的,传递数据的接口,这两者就不同替换
而存了一个int的QVariant,和存了一个double的QVariant,是
同一个类型
还没搞清楚?想一想脚本语言这在用于传递一些未知类型的数据时,比容器类方便得多,比void*安全得多,而且它自带类型信息,可通过id/name来标识类型在读取数据时,QVariant的类型安全是这么实现的如果其中存储的类型,不能转换为T(隐式转换、自动转换),则返回一个默认构造的T类型对象。另外,默认提供了常见基础类型的转换,比如int、double、string之间的转换而QVariant那么多黑科技,全部依靠那个宏实现。如果你自己写了个class,想让它支持QVariant,只需要这么写这就是宏的魅力所在
关于宏图的成语
关于宏图的成语有两个:大展宏图、宏图大志。
1、大展宏图:把卷画打开,比喻实现。大规模地实施宏伟远大的计划或抱负。
出处:唐朝韩愈《为裴相公让官表》中的“启中兴之宏图,当太平之昌历。”
2、宏图大志:形容宏伟的计划,远大的志向。