4.2.4 高级议题
本节讨论关于typeof的一些高级议题。
为BOOST_AUTO更名
BOOST_AUTO是一个非常有用的宏,它能够使变量的赋值工作更加轻松容易。但它的名字有点过长,书写起来不太方便,虽然这完全是为了符合Boost库的命名规范。
如果想要让使用BOOST_AUTO的代码看起来更漂亮优雅一些,可以再使用宏定义给它换个名字,比如:
- #define auto_t BOOST_AUTO //使用auto_t来代替BOOST_AUTO
- int main()
- {
- auto_t(p, make_shared<int>(10));
- assert(*p = 10);
- }
这个小小的技巧会使代码看起来更美观,更类似C++(www.cppentry.com)0x风格。
模板类型自动推导
typeof库不仅能够推导一般表达式的类型,也能够推导带有模板的复杂表达式,在模板语境中时需要使用BOOST_TYPEOF_TPL和BOOST_AUTO_TPL。对于泛型编程(www.cppentry.com)的讨论已超出了本书的范围,故在此不做更深入的介绍。