来自指针的类类型用作模板参数 [英] Class type from pointer used as template argument

查看:63
本文介绍了来自指针的类类型用作模板参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果将用户定义类型的指针作为模板参数传递给模板类,是否可以获得参数的类类型?

If a pointer to an user defined type is passed as template argument to a template class, is it possible to get the class type of the argument?

template <class T> struct UserType {
    typedef T value_type;
    ...
};

int main () {
    typedef std::vector<UserType<double>*> vecType
    vecType vec;

    vecType::value_type::value_type m; //how to get the double here?

    return 0;
}

推荐答案

使用特征:

template <typename> struct ptr_traits {};
template <typename T> struct ptr_traits<T*>
{ typedef T value_type; };

ptr_traits<vecType::value_type>::value_type m;

这篇关于来自指针的类类型用作模板参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆