Стек C ++ в Objective-C ++ - PullRequest
1 голос
/ 06 мая 2010

Я хотел бы использовать тип стека C ++ в Objective-C, но я сталкиваюсь с некоторыми проблемами. Вот пример того, что я хотел бы сделать:

#import <stack>
#import <UIKit/UIKit.h>

@interface A : NSObject {
    stack<SEL> selectorStack;
}

@end

К сожалению, это не компилируется. Поработав некоторое время с кодом и попробовав разные вещи, я не могу найти способ сделать это. Может кто-нибудь сказать мне лучший способ использовать стек C ++ в объекте Objective-C или, если это вообще возможно?

Спасибо.

UPDATE:

Что ж, ответ KennyTM работал с моим файлом примера, но по какой-то причине, когда я попытался переименовать класс, он перестал работать. Вот код, который я сейчас имею:

#import <stack>
#import <UIKit/UIKit.h>

@interface MenuLayer : NSObject {
    std::stack<SEL> selectorStack;
}

@end

Компилятор выдает следующие ошибки:

stack: No such file or directory
expected specifier-qualifier-list before 'std'

Ответы [ 2 ]

2 голосов
/ 06 мая 2010

Вы пробовали

@interface A : NSObject {
    std::stack<SEL> selectorStack;
}
1 голос
/ 07 мая 2010

Для второй проблемы убедитесь, что вы случайно не переименовали файл, заканчивающийся .m вместо .mm. В противном случае заголовки C ++ не находятся в путях поиска заголовков (и, конечно, вы не можете использовать C ++).

Кроме того, если заголовок включен в какой-то простой файл Objective-C (.m), у вас возникнет та же проблема. Вы можете избежать этого, например используя непрозрачные указатели .

...