作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 .h 文件中有这个类定义:
class PolygonPath
{
public:
template<class T> explicit PolygonPath(const Polygon<T> &);
template<class T> Polygon<T> toPolygon() const;
}
在 .cpp 文件中,我定义了我的方法。然后,我想为 Polygon<float>
定义显式模板和 Polygon<long>
.所以,我这样定义它们:
template class PolygonPath::PolygonPath<float>(const Polygon<float> &); //Fail
template class Polygon<float> PolygonPath::toPolygon<float>() const; //Ok
template class PolygonPath::PolygonPath<long>(const Polygon<long> &); //Fail
template class Polygon<long> PolygonPath::toPolygon<long>() const; //Ok
对于构造函数,我无法定义显式模板特化。我在编译时遇到此错误:“错误:‘PolygonPath’不是类模板”。我也尝试使用这种语法:
template <> PolygonPath::PolygonPath(const Polygon<float> &)
它可以编译,但我在链接处收到另一个错误:“对 `urchin::PolygonPath::PolygonPath(urchin::Polygon const&)' 的 undefined reference ”。
最佳答案
删除 class
来自构造函数的显式实例化。
template PolygonPath::PolygonPath<long>(const Polygon<long> &);
和
template Polygon<long> PolygonPath::toPolygon<long>() const;
关于c++ - 构造函数的显式模板特化 (g++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52651035/
我是一名优秀的程序员,十分优秀!