首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C++中,“模板和内联是正交的”是什么意思?

在C++中,“模板和内联是正交的”是什么意思?
EN

Stack Overflow用户
提问于 2010-11-02 20:47:52
回答 4查看 465关注 0票数 0

在C++中,template and inline are orthogonal是什么意思

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-02 20:51:36

  • 如果两个东西是“正交的”,那就意味着它们是独立的。在这种情况下,这意味着模板可以是内联的,模板可以是非内联的,非模板可以是非内联的,非模板可以是内联的。
  • 我认为出现这个问题是因为两者之间有一些表面上的相似性,因为两者都应该出现在使用它们的翻译单元中,换句话说,它们的定义(主体,实现)应该在.h文件中提供。然而,从第一段可以看出,模板和内联确实是正交的。HTH
票数 4
EN

Stack Overflow用户

发布于 2010-11-02 20:51:56

这意味着某个东西可以是模板,也可以不是模板,而不需要考虑它是否是内联的。它们是具有不同目的的不同概念。

然而,我认为这个术语具有误导性,因为这两个概念确实以不平凡的方式相互作用。例如,非内联函数通常不能在.h文件中声明,但如果它是函数模板,则可以而且通常必须这样做。因此,templateinline基本上是正交的,但不是完全正交的。

票数 1
EN

Stack Overflow用户

发布于 2010-11-02 20:50:59

不严格地说,这意味着它们不会改变彼此的行为。例如,inline的意思是相同的,不管它是与模板函数一起使用还是与普通函数一起使用。

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

https://stackoverflow.com/questions/4077768

复制
相关文章

相似问题

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