首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造函数的显式模板专门化(g++)

构造函数的显式模板专门化(g++)
EN

Stack Overflow用户
提问于 2018-10-04 15:59:51
回答 1查看 84关注 0票数 0

我在.h文件中有这个类定义:

代码语言:javascript
复制
class PolygonPath
{
  public:
    template<class T> explicit PolygonPath(const Polygon<T> &);
    template<class T> Polygon<T> toPolygon() const;
}

在.cpp文件中,我定义了我的方法。然后,我想为Polygon<float>Polygon<long>定义显式模板。所以,我把它们定义成这样:

代码语言:javascript
复制
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’不是类模板”。我还尝试使用以下语法:

代码语言:javascript
复制
template <> PolygonPath::PolygonPath(const Polygon<float> &)

它编译了,但我在链接中得到了另一个错误:“`urchin::PolygonPath::PolygonPath(urchin::Polygon const&)的未定义引用”。

EN

回答 1

Stack Overflow用户

发布于 2018-10-04 16:04:58

从构造函数的显式实例化中删除class

template PolygonPath::PolygonPath<long>(const Polygon<long> &);

template Polygon<long> PolygonPath::toPolygon<long>() const;

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52651035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档