什么是“template <class t =”“>使用owner = T;”?

时间:2016-07-19 03:58:40

标签: c++ c++11 templates alias ms-gsl

以下内容摘自Microsoft gsl.hgsl的{​​{1}}段:

namespace gsl
{
    //
    // GSL.owner: ownership pointers 
    //
    using std::unique_ptr;
    using std::shared_ptr;

    template<class T>
    using owner = T;
    ...
};

我无法理解以下别名模板的含义:

template<class T>
using owner = T;

有任何解释吗?

2 个答案:

答案 0 :(得分:5)

这意味着,对于每Towner<T>都是T的别名。

答案 1 :(得分:1)

它可以用作注释来显示哪些指针是'所有者'即:

Example of non owning raw pointer

template<typename T>
class X2 {
    // ...
public:
    owner<T*> p;  // OK: p is owning
    T* q;         // OK: q is not owning
};