gpt4 book ai didi

c++ - 范围解析为模板类中的静态函数或指针

转载 作者:行者123 更新时间:2023-11-28 03:02:07 25 4
gpt4 key购买 nike

我目前正在处理其他人编写的一些代码,但我不确定他们方法的效率。他们有一个模板类,该模板类使用范围解析来访问类的成员,而不是使用指向模板化类的指针并以这种方式访问​​它。例如:

template <typename T>
class A {
void func() {
T::DoSomething();
}
};

class B {
static void DoSomething() {
// code...
}
};

我个人感觉模板类比较难理解,但我的主要疑问是性能。哪个更有效率;使用作用域解析,或拥有私有(private)成员变量 A::T* p_blah 并使用 p_blah->DoSomething() 调用 B 的函数>?

最佳答案

范围解析是完全在编译时发生的事情。该代码中使用的方法导致直接的、可内联的函数调用。你真的无法击败它。

您的建议:

  • 需要以某种方式创建 B 的实例
  • 要求指向该实例的指针存储在A(增加其大小)或全局(总是有问题)
  • 介绍跟踪该实例生命周期的需要

简而言之,它不太可能像您目前拥有的那样高效。

关于c++ - 范围解析为模板类中的静态函数或指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20511507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com