首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模板extern (vs extern模板)

模板extern (vs extern模板)
EN

Stack Overflow用户
提问于 2014-05-15 13:54:10
回答 1查看 544关注 0票数 6

我遇到过这样的代码:

代码语言:javascript
复制
template<class T> extern void f(T a);

在.h文件中,f()是用cpp文件中的几个特定的T定义的。

我找不到关于这个语法的任何解释。我看到extern模板是在c++11中引入的,但是它们似乎有不同的语法.

有人能详细说明吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-15 14:04:43

extern在这里是多余的。这意味着从该模板实例化的函数具有外部链接。这是普通的extern,您可以应用到一个普通的函数定义来表示它有外部链接。这也是多余的,因为函数在默认情况下具有外部链接。所以这和

代码语言:javascript
复制
template <class T> void f(T a);

您已经提到在.cpp文件中定义了几个显式实例化(或者可能是专门化,您的问题不清楚)。这仍然与正在使用的extern关键字无关,也可以不使用它来完成。

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

https://stackoverflow.com/questions/23680342

复制
相关文章

相似问题

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