什么是 "template<class T> using owner = T;"?
What is "template<class T> using owner = T;"?
以下摘自 Microsoft gsl
库的 gsl.h
(https://github.com/microsoft/gsl):
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;
有什么解释吗?
表示对于每个T
,owner<T>
是T
的别名。
它可以用作注释来显示哪些指针是'owner'即:
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
};
以下摘自 Microsoft gsl
库的 gsl.h
(https://github.com/microsoft/gsl):
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;
有什么解释吗?
表示对于每个T
,owner<T>
是T
的别名。
它可以用作注释来显示哪些指针是'owner'即:
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
};