boost,,preprocessor学习难,为何功能强大?

1个回答

写回答

18087357657

2026-01-24 05:01

+ 关注

Python
Python

实在是太多了。不过要说集大成者,那还得是boost::preprocessor,它的花哨程度简直让人惊掉下巴,功能也确实非常强大,只是学习起来难度不小。好些年前,我还专门抽出时间想要深入探究一下。学了几天就放弃了。我发觉,在能用它的地方它确实很强,但是我自己用Python写个脚本来生成C++代码也能实现相同的功能。所以后来就没再学了,也没做什么笔记。但要是对宏感兴趣,或者想开阔眼界,又或者学有余力想玩点炫酷的东西,都可以去看看。举个简单的例子吧,像封装类时常用的GetXXX()和SetXXX()函数,如果要手动一个个去写,就太重复、太枯燥了。要是有个宏能一下子定义一堆,让它自己批量展开,那不是很好吗?我想很多人都有过这样的想法,也写过一些简单的宏,但是要写一个能支持任意多个参数的终极宏可不容易。例如:如果要用一个宏来定义,然后直接展开成上面那种形式,这里只有x/y/z这3个成员变量,不过这个宏是能够支持任意多个参数的。那么这个MY_MACRO要怎么实现?我当初想要学习boost::preprocessor就是从这个需求开始的。用boost::preprocessor大概是这样的:然后就可以这么用:这个看起来不是很复杂,不过有些需求实现起来极为复杂,我就不想举例了。网络上也有人发过boost::preprocessor的入门文章,有兴趣的可以去看看。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号