Workaround für fehlendes Namespace std der C-Library von Visual C++ 6
-
Hi,
ich möchte eine Library schreiben die unter mehreren Windows-Compilern läuft, unter anderem soll auch Visual C++ 6 unterstützt werden.
Leider hat Visual C++ 6 ja keinen Namespace std für die Sachen aus der C-Library.
Welches Workaround verwendet ihr dafür?
-
Hmm, wenn es in der 6er wirklich keine <cstdio> Variante gibt, ist es dann nicht egal, wo sie liegen, wenn du <stdio.h> inkludierst.
Ich meine, einusing namespace std;
schadet doch nicht. So oder so.
-
der VC 6 sieht es mit dem C++ Standard nicht so eng, ich wuerd darauf verzichten, den zu unterstuetzen. Ich weiss, das ist jetzt eine sehr extreme Einstellung, aber z. B. dass ich nicht in jedem for meine "i"-Zaehlervariable neu deklarieren kann, sondern eine globale haben muss (oder viele verschiedene) nervt mich immer ungeheuer
-
Blue-Tiger schrieb:
[...], aber z. B. dass ich nicht in jedem for meine "i"-Zaehlervariable neu deklarieren kann, sondern eine globale haben muss (oder viele verschiedene) nervt mich immer ungeheuer
#define for if(0){}else for
-
SeppSchrot schrieb:
Hmm, wenn es in der 6er wirklich keine <cstdio> Variante gibt, ist es dann nicht egal, wo sie liegen, wenn du <stdio.h> inkludierst.
Ich meine, einusing namespace std;
schadet doch nicht. So oder so.
Der VC++ 6 hat die neuen Header ohne .h, nur manche Funktionen liegen nicht im namespace std (z.B. der komplette <cmath>-Teil). Wenn eine Datei nur <cmath> einbindet, schadet ein "using namespace std;", da std nicht bekannt ist und eine Warnung verursacht.
-
In Boost habe ich das gefunden.
#ifdef BOOST_NO_STDC_NAMESPACE #include <cstddef> namespace std { using ::ptrdiff_t; using ::size_t; } #endif
-