1

Objective-CでC++スタックタイプを使用したいのですが、いくつかの問題が発生しています。これが私がやりたいことのサンプルです:

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

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

@end

残念ながら、これはコンパイルされません。しばらくコードをいじって別のことを試した後、これを達成する方法を見つけることができないようです。誰かがObjective-Cオブジェクト内でC++スタックを使用するための最良の方法を教えてもらえますか、それが可能かどうかさえわかりますか?

ありがとう。

アップデート:

さて、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'
4

2 に答える 2

2

やってみました

@interface A : NSObject {
    std::stack<SEL> selectorStack;
}
于 2010-05-06T07:50:27.210 に答える
1

2番目の問題については、ファイルの名前を誤って変更していないことを確認して.mください.mm。それ以外の場合、C ++ヘッダーはヘッダー検索パスに含まれていません(もちろん、C ++は使用できません)。

また、ヘッダーがプレーンなObjective-Cファイル(.m)に含まれている場合、同じ問題が発生します。たとえば、不透明なポインタを使用することで、これを回避できます。

于 2010-05-07T12:54:50.087 に答える