У меня есть класс C ++ в моем проекте Objective C ARC. Класс является производным от чистого класса C ++ и добавляет платформо-зависимую реализацию для моего проекта iOS. Я хочу назвать функции и рамки Objective C там.
Я реализовал части платформы, используя лямбда-функции C ++ 11. Могу ли я сделать это таким образом? Есть какие-то скрытые подводные камни (особенно потому, что мой проект iOS использует ARC)?
bool MyDerivedCPPClass::getValue(const std::string& stdKey, std::string& stdValue) const
{
NSString *key = [NSString stringWithUTF8String:stdKey.c_str()];
// Do ObjC stuff
if(value)
{
stdValue = std::string([value cStringUsingEncoding:NSUTF8StringEncoding]);
return YES;
}
else
{
return NO;
}
}
Выглядит хорошо (обычно Objective-C не мешает C ++), кроме:
bool
должно быть true
/false
не YES
/NO
Других решений пока нет …