作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
试图理解来自 wikipedia 的样本
template <int length>
Vector<length>& Vector<length>::operator+=(const Vector<length>& rhs)
{
for (int i = 0; i < length; ++i)
value[i] += rhs.value[i];
return *this;
}
template <>
Vector<2>& Vector<2>::operator+=(const Vector<2>& rhs)
{
value[0] += rhs.value[0];
value[1] += rhs.value[1];
return *this;
}
首先,我根本无法编译它。我收到错误语法错误:missing ';' before '<'
第二个问题是如何使用它?据我了解模板名称 Vector
与std::vector
不一样.
最佳答案
这只是 Vector 类的(一小部分),显示了用于教学目的的概念。
不能单独编译。你必须写下类(class)的其余部分。
然后您必须编写调用代码来实例化模板并调用运算符来测试它。然后对其进行调试(或添加跟踪消息)以显示正确的重载已解决。
另请注意,它说“可能会生成以下代码”。您实际上不需要第二个代码。它只是展示了优化器编译器可以对您的代码执行的操作。
关于c++ - 来自维基百科的元编程示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336078/
我是一名优秀的程序员,十分优秀!