我读boost笔记 附录:宏中不支持模板

宏里面不支持模板的使用的。具体看看本文就了解了

void say(int a)

{

	std::cout << a << std::endl;

}



#define TEST_MACRO(n) say(n)







template <class R, class B>

class Test_Template

{

public:

	static const int a = 10;

};



int _tmain(int argc, _TCHAR* argv[])

{

	// TEST_MACRO(Test_Template<int,int>::a); 

	// error the comma, because preprocessor can not deal with

	// the template argument in macro

	TEST_MACRO((Test_Template<int,int>::a)); 



	return 0;

}
 

其中注释掉的地方属于错误的,错误的原因是,宏不支持模板,会错把模板中的逗号认为是宏的不同参数,

解决的办法加上一个括号就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值