Псевдоним типа C ++ с использованием ключевого слова - PullRequest
0 голосов
/ 12 октября 2019

Можно ли определить псевдоним типа с ключевым словом using в c ++? Как будет синтаксис? Я пробовал using const_type = typename const T::type, это не работает.

template <typename T>
    class DoubleBuffer {
    typedef T value_type;
    typedef T& reference;
    typedef T const & const_reference;
    typedef T* pointer;

    const_reference operator[](const size_t pos){
        ...
    }
};

1 Ответ

0 голосов
/ 12 октября 2019
template <typename T>
class DoubleBuffer {
public:
    using value_type = T;
    using reference = T&;
    using const_reference = T const &;
    using const_type = const typename T::type;
    using pointer = T*;
    //...
};

Live Demo

Или:

template <typename T>
class DoubleBuffer {
public:
    using value_type = T;
    using reference = T&;
    using const_reference = T const &;
    using const_type = const T;
    using pointer = T*;
    //...
};

Live Demo

В зависимости от того, что T на самом деле - struct / class с определенным вложенным type или автономный тип.

...