2014-06-13 66 views
0

我知道什么静态意味着在声明全局非模板函数的情况下(见例如What is a "static" function?),如果您在包含在几个不同位置的头中编写助手函数并且希望避免“重复定义“错误。在声明全局模板函数时,“static”是什么意思?

所以我的问题是:什么静态意味着在声明全局模板函数的上下文中?请注意,我特别询问了全球范围内的,非会员不属于某个班级的模板功能。

换句话说,就是以下两者之间的区别:除非需要该模板函数的一个实例“编译”

​​

回答

1

注意,一个模板函数实际上不是。

然后,实例具有相同的属性作为非模板静态函数:从其对应的编译单元发出该实例将是不可见的其它编译单元,包括连接体。

+0

有趣 - 这是否意味着* static *在这里没有效果?还是它改变了什么?这两个函数是否都是正确的/有效的C++? – smf68

+1

模板功能自动内联。在C++中,内联不仅提示编译器内联,还禁止将其包含到符号表中。 C++中的内联与C99的“静态内联”具有大致相同的含义。所以,这里应该没有区别。 – keltar

相关问题