c++ - 在 C++ 中不能内联虚函数总是正确的吗?

标签 c++ optimization compiler-construction

据说虚函数不能内联。如果一个函数被声明为虚函数,它就不能在代码中的任何地方内联,或者它是否只适用于某些情况,这是否总是正确的? (例如,从基指针调用方法与在引用上调用方法等)

最佳答案

不,虚函数确实可以内联。虚拟分派(dispatch)仅在以多态方式调用虚拟方法时使用(即,在指针或对对象的引用上)。但是,当在对象 value 上调用虚拟方法时,不会使用虚拟分派(dispatch),编译器可以根据需要自由内联。

关于c++ - 在 C++ 中不能内联虚函数总是正确的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5558523/

相关文章:

c++ - 命名空间 'std' 中的“vector ”未命名类型

algorithm - 寻找 Big Oh 的值(value)

python - 求最大素数 "within"一个数

c++ - 自动编译 MS visual c++

c++ - 我在哪里可以学习有关C++编译器的 “what I need to know”?

c++ - 检测 C++ 模板问题的工具

c++ - 如何在 Windows 中以编程方式强制重启/重新加载播放设备?

c# - 了解编译器优化

c++ - 让 CMake 在可能的情况下选择静态链接?

algorithm - 是否可以通过 SMT 求解器找到 bool 公式的最优解?