冗长、复杂的模板成员方法会影响性能
Will long, complex template member method affect the performance?
我知道长而复杂的内联方法可能会影响性能(尽管短而简单的内联方法可能会提高性能)。然而,模板类的方法必须在头文件中定义。它们是否内联?如果是这样,会对性能有什么影响吗?我应该在模板类中有长而复杂的方法吗?
如果编译器认为内联函数可以提高性能,它将内联函数。如果它认为它不会提高性能,它就不会内联它,即使它在头文件中定义。如果它实际上没有内联函数,它也会注意当这个函数出现在不同的编译单元中时,链接器不会混淆。
即使在声明函数inline
时也是如此。
所以编译器做最好的,你不必担心它。
您应该编写您需要的代码,并将其留给编译器来确定如何最好地使用它。在头文件中定义模板函数不会使它们内联;编译器可能会内联它们,也可能不会。
相关文章:
- 从私有成员变量的成员方法返回unique_ptr
- 如何将类成员方法的参数列表自动填充写入可变参数?
- 如何对绑定的成员方法进行typedef,然后将该类型用作模板参数
- 从类C++外部调用指向成员方法的成员指针
- 在另一个 QThread 上运行成员方法时,无法将事件发送到其他线程拥有的对象
- 对成员类型的成员方法使用 std::result_of<>
- 我是否应该在构造函数或成员方法中进行大量初始化工作
- 如何检查是否调用了成员方法
- 我怎么可能从尚未定义某些成员方法的类创建实例?(C++)
- 有没有办法强制对 clang-format/clang-tidy 中的类成员/方法使用 "this->"?
- 指向 objc 类成员方法的函数指针,用于C++
- 对集合调用成员方法
- 使用方法影响另一个对象的字段
- JetBrains CLion 不能建议字符串的成员方法
- 我无法在班级中获得MED股票来调用成员方法
- 如何在本机回调中使用Cython CDEF类成员方法
- C++合成的move构造函数如何受到volatile和虚拟成员的影响
- 通过指针从for_each循环中访问成员方法
- 私有基类通过子类中的模板友元函数和模板方法影响成员访问
- 冗长、复杂的模板成员方法会影响性能