C++宏定义的一种有趣应用

宏定义, 还可以作为一种对程序对象属性的描述手段来加以使用.


例如: 《编程原本》 (机械工业) P13. 

template<typename Op>

     requires(BinaryOperation(Op))

Domain(Op)  square(const Domain(Op)& x, Op op)

{

      return op(x, x);

}


其中" requires() "是一个宏, 定义如下(P251):

#define  requires(...)  


预编译器对模板函数展开后, require(BinaryOperation(Op)) 被空的内容所取代.

所以, 这里的宏"require" 实际上只起了一个注释的作用.

Binary在此处翻译为"二元". 

require(BinaryOperation(Op)) 在此处的作用是告诉使用者, Op是一个二元操作.

另: Domain(Op) 表取Op的定义域.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值