关于does not give a valid preprocessing token

今天碰到gcc的这个编译错误,经实验总结原因如下

1、老版本gcc编译器对"."和","作为##符的辅助分隔符没有处理,只有空格可以作为##符的分隔符,例如替换语句中间定义的token采用##token##,例如gcc-3.4.1;

2、新版本gcc编译器,"."和",",以及空格都可以辅助##符来拆分token,也就是说token前后只要有这三种符号,其它符号还未测试,都可以省去##符,例如gcc-4.3.2;

3、vc9可以兼容所有情况:)

 

你可能感兴趣的:(c++&,ace&,boost)