Можно ли использовать такие вещи, как шаблоны, в Objective-C ++.
Да, но вам нужно позаботиться о том, чтобы смешивать типы и интерфейсы между чистыми уровнями C ++ и кодом Objective-C ++. Помните о границах между слоями, где вам нужно будет преобразовать такие типы, как std::string
в NSString
и т. Д.
Например, вы можете реализовать ядро игрового движка на чистом C ++ и просто реализовать свои контроллеры и код GUI на Objective-C ++. Тогда код Obj-C ++ является связующим звеном между чистым движком C ++ и Cocoa.
Полагаю, на самом деле вопрос в том, могу ли я использовать повышение?
Учитывая, что iPhone OS является подмножеством OS X, которое все еще обеспечивает полный уровень POSIX, большинство библиотек Boost должно работать нормально. Это должно быть похоже на написание кода Дарвина.
В Objective-C ++ есть ряд ограничений, о которых следует знать (взято непосредственно из Справочного руководства Objective-C 2.0 ):
- вы не можете использовать синтаксис Objective C для вызова объекта C ++
- вы не можете добавлять конструкторы или деструкторы к объекту Objective-C
- Вы не можете использовать ключевые слова this и self взаимозаменяемо
- иерархии классов являются отдельными; класс C ++ не может наследовать от класса Objective-C, а класс Objective-C не может наследовать от класса C ++
- исключение, сгенерированное в коде Objective C, не может быть перехвачено в коде C ++, и, наоборот, исключение, сгенерированное в коде C ++, не может быть перехвачено в коде Objective C.