[英]C++ partial template template specialization
我想将部分模板特化传递给模板模板参数,但出现错误。 我不知道为什么这不工作。
template<template<typename, int> class V, typename T, int N, int... Indexes>
class Swizzle
{
// ...
};
template<typename T, int N>
struct Vector;
template<typename T>
struct Vector<T, 3>
{
// ...
union
{
// ...
Swizzle<Vector, T, 3, 0, 0, 0> xxx;
};
};
错误:
“Vector”:模板参数“V”的模板参数无效,需要类模板“Swizzle”:使用类模板需要模板参数列表
问题仅出现在MSVC 上
在类模板Vector
, Vector
既指模板实例的类型,也指模板本身。
template<class X, int M>
using Self = Vector<X,M>;
// ...
union
{
// ...
Swizzle<Self, T, 3, 0, 0, 0> xxx;
};
我怀疑 MSVC 在这里是错误的,但我不确定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.