[英]C++ Does it make sense to declare a template function with static inline?
我们没有“外部模板”和“模板”,function 始终是“隐式内联”。 无论如何,这有意义吗?
这对我来说没有意义。 function 模板不是“隐式内联”。 您必须明确声明它“内联”以使其内联。
这并不意味着对它的调用是内联的或不是内联的。 这完全是编译器的决定。 由于模板可以在多个翻译单元中定义(前提是每个定义都为模板提供相同的行为),因此在这样的模板上inline
并没有太大的影响,据我所知。 唯一的效果是告诉优化器您希望对 function 模板的调用应该被内联,据我所知。
制作 function 模板static
是完全明智的。 这使得您可以在多个翻译单元中定义模板,每个定义都有不同的行为。 由于static
模板将具有内部链接,这意味着它们位于其翻译单元的本地并且不会发生冲突。
不过,将static
放在函数上,而 function 模板完全独立于将inline
放在它们上面。 static
和inline
不像在 C99中那样依赖于 C++ 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.