Что такое "шаблон <класс T> с использованием owner = T;"?

c++ c++11 templates alias ms-gsl

2036 просмотра

2 ответа

14991 Репутация автора

Ниже приводится выдержка из библиотеки gsl.hMicrosoft gsl( 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;

Есть объяснения?

Автор: xmllmx Источник Размещён: 19.07.2016 03:58

Ответы (2)


6 плюса

74115 Репутация автора

Решение

Это означает, что для каждого T, owner<T>это псевдоним для T.

Автор: Brian Размещён: 19.07.2016 04:00

1 плюс

372 Репутация автора

Его можно использовать в качестве аннотации, чтобы показать, какие указатели являются «владельцем», т. Е.

Пример не владеющего необработанным указателем

template<typename T>
class X2 {
    // ...
public:
    owner<T*> p;  // OK: p is owning
    T* q;         // OK: q is not owning
};
Автор: arenard Размещён: 13.07.2017 08:30
Вопросы из категории :
32x32