我目前正在实现一些实用函数来实现我正在处理的一些库。我被迫在将函数分段为静态成员作为更通用的命名空间中类定义的一部分,或者进入更具体的命名空间然后定义函数之间做出选择。我选择前一种感觉,因为它在将这些实用程序类纳入范围(使用或继承)的方式上更加灵活,尽管我不确定这种设计选择是否会产生任何开销:
是
namespace Utilities {
struct CharUtil {
static void foo();
}
}
Utilities::CharUtil::foo();
慢于
namespace Utilities {
namespace CharUtil {
void foo();
}
}
Utilities::CharUtil::foo();
?
前者使用继承更快吗?
最佳答案
这两种情况之间没有任何区别,除了函数名称的错位。静态函数没有 this
指针作为隐藏参数。编译器为这两个函数生成的代码将是相同的。
关于c++ - 引用静态函数作为类定义的一部分是否有任何开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8493620/