我需要在运行时将类合成为底层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 ++也将引用转换为指针吗?或者是什么?
非常感谢任何见解!
答案 0 :(得分:2)
Objective-C不使用varargs进行消息传递。采用引用参数的Objective-C方法的实现与采用引用参数的C ++函数相同。