[英]Scope Resolution to a Static Function or a Pointer in Template Class
我正在研究其他人编写的一些代码,我不确定他们方法的效率。 它们有一个模板类,它使用范围分辨率来访问类的成员,而不是指向templatised类并以这种方式访问它。 例如:
template <typename T>
class A {
void func() {
T::DoSomething();
}
};
class B {
static void DoSomething() {
// code...
}
};
我个人认为它使模板类难以理解,但我的主要查询领域是性能。 哪个更有效率; 使用范围解析,或具有私有成员变量A::T* p_blah
并使用p_blah->DoSomething()
调用B
的函数?
范围解析完全在编译时发生。 该代码中使用的方法产生直接的,可嵌入的函数调用。 你无法真正击败它。
你的建议:
A
(增加其大小)或全局(总是有问题的)中 简而言之,它几乎没有机会像你现在拥有的那样高效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.