微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 C++ 属性应用于函数指针

如何解决将 C++ 属性应用于函数指针

我正在尝试包装一些包含函数指针的结构,这些函数指针期望在 Linux 上使用 Clang 使用 Microsoft x64 调用约定进行调用

通常,如果我需要对函数指针应用调用约定,我会在函数指针的签名中使用类似 __cdecl(尽管在这种情况下它是 __attribute__((ms_abi)))的东西,但是我正在尝试使用 C++ 样式的属性,例如 [[gnu::ms_abi]],因为我一直在整个代码库的其余部分使用这种样式的属性,并且我希望保持一致。

这是我想要完成的一个例子:

struct Status { ... }
struct Time { ... }
struct TimeCapabilities { ... }

[[gnu::ms_abi]]
using GetTime = std::add_pointer<Status(Time,TimeCapabilities)>::type;

但是,我似乎找不到合适的位置来放置不会导致 Clang 抱怨的属性。如果没有办法使用 C++ 风格的语法来实现,那么我将使用旧语法,但为了保持一致性,我想使用现代属性语法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。