这是来自MS VC stl的代码:
template<typename _Fun_t,
typename _Arg_t> inline
binder1st<_Fun_t> bind1st(_Fun_t% _Func, _Arg_t _Left)
{ // return a binder1st functor adapter
typename _Fun_t::first_argument_type _Val = _Left;
return (binder1st<_Fun_t>(_Func, _Val));
}
Run Code Online (Sandbox Code Playgroud)
和QT:
#define Q_ARG(type, data) QArgument<type >(#type, data)
Run Code Online (Sandbox Code Playgroud)
这些都不是特定于模板的.
'%'是C++的Microsoft扩展,是C++/CLI的一部分.它定义了跟踪参考.类型的正常左值引用变量T&是对另一个变量的引用; 所以T%除了它指的是可能被垃圾收集器移动的托管对象; GC知道当它移动对象时,它必须修补对该对象的所有跟踪引用.
'#'是C预处理器的stringify运算符.它表示以下宏参数的值,由双引号括起.所以这:
Q_ARG(MyType, 12345)
Run Code Online (Sandbox Code Playgroud)
将扩展到这个:
QArgument<MyType >("MyType", 12345);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |