C++ traits两种用途
1. 利用编译器为自己约束程序行为。
//拒绝使用double的traits,完全特化
template<class T>
struct type_restrict
{
enum{value};
};
template<>
struct type_restrict<double>{};
2. 指针引用与值分离,准确获取所需类型。
//部分特化
template<class T>
struct type_traits
{
typedef T value_type;
typedef T* pointer_type;
typedef T& reference_type;
//const...
};
template<class T>
struct typed_tratis<T*>
{
typedef T value_type;
typedef T* pointer_type;
typedef T& reference_type;
//const...
};
//T&/const/void ...
本文介绍了C++中Traits的两种主要用途:一是利用编译器特性约束程序行为,通过完全特化拒绝特定类型的使用;二是通过部分特化实现指针和引用与值的分离,确保类型信息的准确性。
2000

被折叠的 条评论
为什么被折叠?



