我目前正在实现一些实用程序函数来实现我正在处理的一些库。我被迫在一个更通用的命名空间中将函数分割为静态成员作为类定义的一部分,或者输入更具体的命名空间然后定义函数。我选择前者的感觉,因为它更灵活,可以将这些实用程序类划入范围(使用或继承),但我不确定是否有任何与此设计选择相关的开销:
时
namespace Utilities {
struct CharUtil {
static void foo();
}
}
Utilities::CharUtil::foo();
慢于
namespace Utilities {
namespace CharUtil {
void foo();
}
}
Utilities::CharUtil::foo();
前者使用继承更快吗?
答案 0 :(得分:2)
除了函数的错位名称之外,这两种情况之间没有任何区别。静态函数没有this
指针作为隐藏参数。两个函数的编译器生成代码都是相同的。