我正在检查
clamp
的执行情况:
template<typename T,typename Pred> T const & clamp ( T const& val,typename boost::mpl::identity<T>::type const & lo,typename boost::mpl::identity<T>::type const & hi,Pred p ) { // assert ( !p ( hi,lo )); // Can't assert p ( lo,hi ) b/c they might be equal return p ( val,lo ) ? lo : p ( hi,val ) ? hi : val; }
如果我查找文档,则identity
返回模板参数不变.
The identity Metafunction. Returns X unchanged.
那么这里有什么用处呢?
不是typename boost :: mpl :: identity< T> :: type等价于T?