引用静态函数作为类定义的一部分是否有任何开销?

Is there any overhead with referencing static functions as part of a class definition?

本文关键字:是否 任何 开销 一部分 静态函数 定义 引用      更新时间:2023-10-16

我目前正在实现一些实用程序函数,用于实现我正在开发的一些库。我被迫选择将函数分割为静态成员,作为更通用的名称空间中类定义的一部分,或者输入更具体的名称空间,然后定义函数。我选择了前一种感觉,因为它在将这些实用程序类引入范围(使用或继承)的方式上更灵活,尽管我不确定这种设计选择是否有任何开销:

namespace Utilities {
  struct CharUtil {
    static void foo();
  }
}
Utilities::CharUtil::foo();

namespace Utilities {
  namespace CharUtil {
    void foo();
  }
}
Utilities::CharUtil::foo();

?

前者使用继承更快吗?

这两种情况之间没有任何区别,除了函数的名称混乱。静态函数没有this指针作为隐藏参数。编译器为这两个函数生成的代码将是相同的。