STL Templates im MFC Projekt verwenden

Ich möchte ein STL Template (queue, list,…) in einem MFC - Projekt (Visual C++) verwenden, bekomme aber beim Kompilieren nur Fehlermeldungen. Verwende ich den selben Code in einem Standard - C++ Projekt, wird er ohne Probleme kompiliert und ausgeführt.

Code:
#include

queue zahlen;

Kompiler Meldungen:
„queue“ nichtdeklarierter Bezeichner
„int“-Typ unterwartet

Hallo,
sicher bin ich nicht, aber du musst bei der STL immer den namespace angeben! ob das in Combination mit der MfC verwendbar ist weiss ich nicht(ich habe kein Windowssystem zur verfügung)

ich meine
#include

std::queue zahlen; //Die Leerzeichen nach den > gehöhren raus, ich vermute nur dass dann HTML dazwischenpuscht

MfG
Daniel

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

es ist so das sich die komplette STL im „namespace std“ befindet. D.h. du musst jedes mal wenn du Element der STL verwendest std:: voranstellen. Da dies recht umstaendlich ist, gibt es zwei Moeglichkeiten das Problem zu umgehen:

  1. du machst den namespace std global sichtbar, indem du am Anfang der Datei „using namespace std“ (vielleicht auch mit Semikolon danach) einfuegst
  2. du verwendest die Dateien die die STL nicht im namespace std definieren, sie besitzen dann die Erweiterung .h (also #include in deinem Fall). Du solltest aber nicht beide Varianten mischen, das das zu schwerwiegenden Problemen fuehrt!
    Ich persoenlich bevorzuge die erste Variante, da ich z.B. bei der anderen nicht genau weiss ob sie Standardkonform ist.

Gruss Ben

Hi Andrea :smile:

Bei einem MFC-Projekt solltest du jede CPP-Datei mit dem Einbinden der „Standard ActiveX“ Header-Datei beginnen :

#include „stdafx.h“

Ich vermute mal stark, dass dieses Include fehlt :smile:

Viele Grüße

Stefan.

Danke euch! Das hat jetzt mit namespace funktioniert.

MfG Andrea