“转换特性”(transform trait)用于指定一个与某个类型相似但具有某些额外(或移除)特性的类型。在以下示例中,无论 T 被特化为 int 还是 int&,变量 m_iMember 都将是一个 int 类型的成员变量:
T
int
int&
m_iMember
template<typename T> class CRClass { std::remove_reference<T>::type m_iMember; };
这里,std::remove_reference<T>::type 作用是去除 T 的引用属性,使 m_iMember 统一为 int 类型,即使 T 是 int&。
std::remove_reference<T>::type