带有 using 关键字的 C++ 类型别名

C++ type alias with using keyword

是否可以在 c++ 中使用 using 关键字定义此类类型别名? 语法如何?我试过了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){
        ...
    }
};
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 实际上是什么 - 定义了嵌套 typestruct/class 或独立类型。