【问题标题】:Get template parameter from boost::ptr_vector从 boost::ptr_vector 获取模板参数
【发布时间】:2014-05-28 17:38:40
【问题描述】:

来自boost::ptr_vector<T> 我正在尝试获取T,但boost::ptr_vector<T>::value_type 似乎是T*。如何获得T

查看文档,我明白了:

typedef  T*                                           value_type;
typedef  T&                                           reference;
typedef  const T&                                     const_reference;

这些都没有帮助......

【问题讨论】:

    标签: c++ boost ptr-vector


    【解决方案1】:

    由于您使用的是 Boost,因此您可以使用 boost::remove_pointer 来获取指向的类型。

    boost::remove_pointer<boost::ptr_vector<T>::value_type>::type
    

    将评估为T

    如果你可以使用 C++11 的特性,你可以使用 std::remove_pointer 和 Boost 的版本一样。

    【讨论】:

    • 有 boost::remove_pointer,如果他使用 Boost,你可以保证他有,而且自己写很简单。
    【解决方案2】:

    如果您可以使用 C++11,std::remove_pointer 上的 value_type 应该可以完成这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多