理解 boost预编译的FOR循环(2)SEQ Size

For循环,首先要知道循环的次数,如何计算次数?
来看看这样一段宏

FM_SEQ_SIZE就是用来计算SEQ循环次数的,一个括号一次。FM_SEQ_SIZE展开:FM_CAT(FM_SEQ_SIZE_, FM_SEQ_SIZE_0 seq)
FM_SEQ_SIZE_0 (1)(2)(3)就变成FM_SEQ_SIZE_1(2)(3)
然后FM_SEQ_SIZE_2(3),再是FM_SEQ_SIZE_3

FM_CAT(FM_SEQ_SIZE_, FM_SEQ_SIZE_3) 合起来是FM_SEQ_SIZE_FM_SEQ_SIZE_3,它就是3,这就计算出SEQ的长度了

发表评论