template <class T>
struct add_pointer
{
typedef see-below type;
};
type: 和remove_reference<T>::type*类型一样
此模板类的功能是构造一个和TYPEOF(&t)一样的类型,其中T是对象类型
头文件: #include <boost/type_traits/add_pointer.hpp> or #include <boost/type_traits.hpp>
Expression |
Result Type |
add_pointer<int>::type |
int* |
add_pointer<int const&>::type |
int const* |
add_pointer<int*>::type |
int** |
add_pointer<int*&>::type |
int** |
实现细节:
template <typename T>
struct add_pointer_impl
{
typedef typename remove_reference<T>::type no_ref_type;
typedef no_ref_type* type;
};
template< typename T > struct add_pointer
{
typedef typename add_pointer_impl<T>::type
type;
};