我可以使用 using 关键字进行部分模板特化吗?

Can I have partial template specialization with the using keyword?

OpenCV 库的代码中,我发现了这个:

template<typename _Tp, int cn> class Vec
{
  ...
}

typedef Vec<int, 2> Vec2i;
typedef Vec<int, 3> Vec3i;
typedef Vec<float, 2> Vec2f;
typedef Vec<float, 3> Vec3f;

我想要 Vec 类型 float 和可变长度 N。是否可以这样写

using Vecf<N> = Vec<float, N>;

?

是的,你快到了。 正确的语法是

template<int N>
using Vecf = Vec<float, N>;