我希望将部分模板特化传递给模板模板参数,但是出现了错误。 我不确定为什么不能正常工作。
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上。
union
不是一个好主意。请注意,现代版本的union
是std::variant
(c++17)。 - Marek R