如何在 class 中为模板定义类型别名

How to define a type alias for a template in a class

例如

struct Option_1
{
    template<class T> using Vector = std::vector<T>;
};

我能做到

typename Option_1::Vector<int> v;

但我更喜欢下面的

Vector<Option_1, int> v;

或不包含单词 "typename" 的类似词。我定义了一个别名

template<class Option, class T> using Vector= typename Option::Vector<T>;

但因模板无法识别而失败 declaration/definition。如何解决?

您应该使用关键字 template 作为依赖模板名称 Option::Vector,即

template<class Option, class T> using Vector = typename Option::template Vector<T>;
//                                                              ~~~~~~~~

LIVE