gpt4 book ai didi

c++ - 如何指示编译器为虚函数生成别名?

转载 作者:IT王子 更新时间:2023-10-29 00:33:15 27 4
gpt4 key购买 nike

参见 this question背景。

基本上,我有以下类的定义

class  MyClass {
virtual int foo4(double, int);
};

有没有办法指示编译器生成两个解析为 foo4 的符号?也就是说,我希望如果可执行文件要求动态链接器解析 _ZN7MyClass4foo4Edi(MyClass::foo4(double, int) 的符号)和其他一些符号(让我们比如 _ZN7MyClass9reserved1EvMyClass::reserved1() 的符号),动态链接器会将两者都解析为 &MyClass::foo4(double, int)。我在 Linux 上使用相当现代的 GCC。

最佳答案

在 gcc 中,使用 "alias" attribute .

int reserved1() __attribute__((alias ("_ZN7MyClass4foo4Edi")));

...但我相信这只会在与 (a) 符号定义相同的目标文件中起作用,所以我不确定它是否适合您的用例:请参阅 here .具体来说,它只会是一个版本的虚调用的别名,不会被子类继承;此外,您不能使用它来为弱符号设置别名。

关于c++ - 如何指示编译器为虚函数生成别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366704/

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