Очевидный вопрос: вы работаете без оптимизаций (-O0), верно?При оптимизации обычно оптимизируются локальные переменные.Даже без оптимизаций я обнаружил, что многие простые C ++ кажутся скрытыми.Например, вы не всегда можете вызвать get()
для shared_ptr, потому что он встроен.
Я рекомендую перейти на Xcode 3.2.Я чувствую, что поддержка C ++ несколько улучшилась между 3.1 и 3.2.Тем не менее, поддержка C ++ в Xcode все еще очень слаба.Если вам не нужна переносимость C ++ (как и мне), я не рекомендую разрабатывать приложения для Mac или iPhone на C ++.Вы будете бороться с системой весь день.Гораздо лучше просто изучить ObjC и использовать его (кроме того, ObjC действительно очень мощный язык и очень хорошо работает с Cocoa).Даже когда вам нужна переносимость C ++, я рекомендую изолировать код C ++ в ядро и обернуть его в Objective-C.
Ни в коем случае не следует использовать ObjC ++ в большом количестве.GDB очень запутался в моем опыте с ObjC ++.Если вы собираетесь писать на C ++, оберните ваш ObjC.Если вы собираетесь писать в ObjC, оберните ваш C ++.Но не пытайтесь писать обоими одновременно, если вы планируете использовать отладчик.