命名空间的成本

Ant*_*osa 4 c++ compiler-optimization

在C ++中定义名称空间的成本是多少?我所说的具体是指编译时/运行时增加和/或内存占用。假设我有一个带有头文件的普通程序,一个带有main的.cpp程序。如果我namespace在标头中定义a ,我是否会注意到上述统计数据的变化?10、100或1,000个名称空间如何?如果已定义但从未使用过该怎么办:这会改变答案吗?我猜您可能会说我很好奇此构造如何与编译器进行交互。

同样,我对struct/ class定义和的影响感到好奇using,但我想不出一个涵盖这三个问题的好标题。

eer*_*ika 10

在C ++中定义名称空间的成本是多少?

您必须输入更长的名称。通过避免在不同命名空间之间使用名称冲突这一事实,可以抵消这一成本。如果名称有冲突,则简称没有用。

并非完全如此:名称空间使您以更少的编写工作就可以开始工作,因为您不必总是将名称空间重新输入为不合格的标识符。

我所说的特别是编译时

潜在地。

运行时间增加

实际上没有。

如果我在标头中定义了命名空间,是否会注意到上述统计数据的变化?

您可以通过测量找出答案。

您可能不会注意到。

  • @BenVoigt它可能还会增加,因为您花费了更多的精力将它们打字,从而增加了房间(以及整个宇宙)的温度,从而降低了(以及其他任何人)CPU的热量上限。如果你问我,这都是荒谬的。 (2认同)