Je voudrais utiliser un type de pile C++ dans Objective-C, mais je rencontre des problèmes. Voici un échantillon de ce que je voudrais faire:Pile C++ dans Objective-C++
#import <stack>
#import <UIKit/UIKit.h>
@interface A : NSObject {
stack<SEL> selectorStack;
}
@end
Malheureusement, cela ne compile pas. Après avoir manipulé le code pendant un moment et essayé différentes choses, je n'arrive pas à trouver un moyen d'y parvenir. Quelqu'un peut-il me dire la meilleure façon d'utiliser une pile C++ dans un objet Objective-C ou si c'est même possible?
Merci.
MISE À JOUR:
Eh bien, la réponse de KennyTM a travaillé sur mon exemple de fichier, mais pour une raison quelconque quand j'ai essayé de renommer la classe, il cesser de travailler. Voici le code que j'ai en ce moment:
#import <stack>
#import <UIKit/UIKit.h>
@interface MenuLayer : NSObject {
std::stack<SEL> selectorStack;
}
@end
Le compilateur recrache les erreurs suivantes:
stack: No such file or directory
expected specifier-qualifier-list before 'std'
Assurez-vous que vous ne l'avez pas accidentellement renommé en terminant par '.m' au lieu de' .mm'. Sinon, les en-têtes C++ ne sont pas dans les chemins de recherche d'en-tête (et vous ne pouvez pas utiliser C++ bien sûr). –
Je l'ai vérifié deux fois, et l'extension est .mm. Juste pour être clair cependant, l'interface est située dans un fichier d'en-tête. Cela fait-il une différence? – LandonSchropp
Si l'en-tête est inclus dans un fichier Objective-C ('.m'), vous vous retrouverez avec le même problème. Voir par exemple [ici] (http://stackoverflow.com/questions/2262011/adding-c-object-to-objective-c-class/2262395) pour des alternatives. –