我已经阅读了最后一个 C++11 草案(n3337 - 它是最后一个吗?),我有一个关于我一直在研究的可能实现的问题。
假设我们有以下代码:
extern "Objective C" {
class Object {
public:
static Object *alloc();
Object *init();
};
};
然后打电话
Object *x = Object::alloc()->init();
问题是我不明白是否允许编译器控制外部“X”块的调用约定:想法是“翻译”对 objc_msgSend(blablabla) 的调用 - 这是否符合标准,还是将其视为扩展(因为它不仅会修改符号名称,还会在此处修改复杂的“调用约定”)?当然,我可以通过创建一个称为 __thiscall 的弱函数来实现这一点,然后调用并返回该方法本身 - 但问题仍在继续,它是否符合要求?
谢谢!