如何专门化具有继承的复杂模板- c++
How to specialize a complex template with inheritance - C++
我似乎找不到合适的语法来专门化这个模板:
template <class Object, class Var, class Invert, class Step = Var, unsigned int FIXED = IW_GEOM_POINT>
class TSin : public BasicTween<Object, Var> {...
我想保留<Object>
作为模板参数,但专门化所有其他参数。我是这样尝试的:
template <class Object>
class TSin<Object, CIwVec2, int, CIwVec2, IW_GEOM_POINT> {...
给出错误。
请有人提供正确的语法专门化模板和语法实例化专门化版本?
我认为你的代码应该是这样的:http://ideone.com/cvGy3
你需要为类的实例化定义所有的类型
错误是您重新定义class TSin
。我认为你做不到。
可以做的是声明泛型模板并特化类的定义:
template <class Object, class Var, class Invert, class Step = Var,
unsigned int FIXED = IW_GEOM_POINT>
class TSin;
template <class Object>
class TSin<Object, CIwVec2, int, CIwVec2, IW_GEOM_POINT> {...
或特化类成员的定义:
template <class Object>
void TSin<Object, CIwVec2, int, CIwVec2, IW_GEOM_POINT>::Foo(...) {...
或声明子类:
template <class Object, class Var, class Invert, class Step = Var,
unsigned int FIXED = IW_GEOM_POINT>
class TSin : public BasicTween<Object, Var> {...
template <class Object>
class SpecialTSin::public TSin<Object, CIwVec2, int, CIwVec2, IW_GEOM_POINT>
{...
我认为后者是最好的选择。
相关文章:
- 函数复杂度分析
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 函数的时间复杂度是多少?
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 使用 Python Extension API 包装复杂C++类
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何计算此排序函数的时间复杂度?
- 计算两个代码块的时间复杂度
- 将平面阵列重塑为复杂的特征类型
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 当 A 在 for 循环中调用函数 B 时,如何计算函数 A 的空间复杂度?
- 如何在复杂继承中访问静态成员变量
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- OpenCV 傅里叶变换复杂输出问题
- 具有嵌套 if-else 的循环的时间复杂度
- 在 for 循环中处理复杂的发送 recv 消息
- C++:如何用单个命令替换复杂的迭代?
- C++中 std::map 的运行时复杂度是多少?