gpt4 book ai didi

c++ - 来自基类的 _forceinline 虚函数是否会在派生类中被 __forceinlined 而不明确说明?

转载 作者:搜寻专家 更新时间:2023-10-31 00:45:26 24 4
gpt4 key购买 nike

假设我们有:

class Base
{
__forceinline virtual int A() {return 1;}
}


class Derived: public Base
{
int A()
{
return 2;
}
}

派生类中的函数 A 是虚拟的,没有明确说明。派生类中的函数 A 是否也被 __forceinlined 而不明确声明?

最佳答案

首先,虚拟调用 的函数无法内联 - 编译器需要先获取 vtable 指针才能知道要调用哪个函数。并非所有标记为 virtual 的函数都被虚拟调用 - 这些函数可以内联。

然后,__forceinline 不会传播到派生类实现 - 它是一个非标准的编译器特定关键字,对每个函数都有影响。所以如果你想强制内联你必须在派生类函数中再次应用关键字。同样,它不能保证所有调用都将被内联。

关于c++ - 来自基类的 _forceinline 虚函数是否会在派生类中被 __forceinlined 而不明确说明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6842690/

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