Objective-C ++:如何实现引用?

时间:2014-02-04 01:47:02

标签: objective-c objective-c++

我需要在运行时将类合成为底层C ++类的代理。我已经知道如何收集方法并通过模板魔术合成C ++自由函数来转向并调用相应的对象。但是,我需要知道带引用的方法的实现原型应该是。

这是一个具体的例子:

如果我有这样的C ++方法:

void set ( string const& string , shared_ptr<Object> const& pObject ) ;

Objective-C ++的字面翻译(请注意:这不会使用字面翻译,但还有其他的翻译):

- (void) setObject:(shared_ptr<Object> const&)object forKey:(std::string const&)key ;

文字C IMP将是:

void MyFakeProxyClass_setObjectForKey ( MyFakeProxyClass* self , SEL cmd , shared_ptr<Object> const& object , string const& key ) ;

但是知道Objective-C如何使用variargs进行消息传递,这个函数不能将引用作为参数。

Objective-C ++也将引用转换为指针吗?或者是什么?

非常感谢任何见解!

1 个答案:

答案 0 :(得分:2)

Objective-C不使用varargs进行消息传递。采用引用参数的Objective-C方法的实现与采用引用参数的C ++函数相同。