问题
Below is excerpted from gsl.h of Microsoft's gsl library (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;
...
};
I cannot understand what the following alias template means:
template<class T>
using owner = T;
Any explanations?
回答1:
It means that for every T, owner<T> is an alias for T.
回答2:
It can be used as annotation to show which pointers are 'owner' ie:
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
};
来源:https://stackoverflow.com/questions/38449366/what-is-templateclass-t-using-owner-t