__VA_ARGS__ und VC++ Ver.6



  • Hallo, ich arbeite gerade unter Visual Studio mit dem C++ Compiler 6.00.8168.0, und wollte gerade __VA_ARGS__ in einer Präprozessordirektive verwenden, dabei kam der folgende Fehler: C2010 ('.' : unexpected in macro formal paramteter list).

    Das Makro sie so aus: #define DefineFunctionType(t, n, ...) t (*n) (__VA_ARGS__)

    Kann der VC++ 6.0 Präprozessor überhaupt __VA_ARGS__ Makros verarbeiten? Ich finde im Netz keine Info dazu. Evtl. muss ein Compilerschalter gesetzt werden? (Microsoft's MSDN geht nur noch bis 2005 zurück).

    Danke.



  • BlueForge schrieb:

    Kann der VC++ 6.0 Präprozessor überhaupt __VA_ARGS__ Makros verarbeiten?

    nope

    Wieso in Gottes Namen verwendest du VC++ 6?



  • Schau ob das Hilft:
    https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html

    Tipp: Schmeis das VS runter, hier ordentliche IDEs (kostenlos):
    http://www.codeblocks.org/downloads
    Code::Blcoks in Deutsch: http://eviltux.de/archiv.php?art5gg=weiter&id=1264351256&archive=&start_from=&rub=1&

    https://netbeans.org/
    http://www.eclipse.org/downloads/

    Wenn Profi.IDE haben willst, empfele ich dir IDEs von Intel oder Borland zu legen, muß aber kleinigkeit ausgeben so, ca. um 2000-3500 Euro.



  • BlueForge schrieb:

    Kann der VC++ 6.0 Präprozessor überhaupt __VA_ARGS__ Makros verarbeiten? Ich finde im Netz keine Info dazu. Evtl. muss ein Compilerschalter gesetzt werden? (Microsoft's MSDN geht nur noch bis 2005 zurück).

    Ich habe gerade in der MSDN zu VS6 gestöbert und finde keine Info dazu. Vielmehr werden alle Makro-Beispiele mit abschließender Anzahl von Argumenten gebracht. Ich denke, dass es auch keine verwegenen Tricks gibt, eine variable Anzahl von Argumenten in Makros einzuführen.

    viele grüße
    ralph



  • Die Antwort hätte man sich eigentlich mit ein wenig Logik beantworten können:

    - wo wird __VA_ARGS__ eingeführt? C99.
    - kann VS6 C99? Eher nicht.



  • dachschaden schrieb:

    Die Antwort hätte man sich eigentlich mit ein wenig Logik beantworten können:

    - wo wird __VA_ARGS__ eingeführt? C99.
    - kann VS6 C99? Eher nicht.

    Und seit wann supported MSVC __VA_ARGS__? VS2005.
    Kann VS2005 C99? Eher nicht...



  • BlueForge schrieb:

    Hallo, ich arbeite gerade unter Visual Studio mit dem C++ Compiler 6.00.8168.0

    ...ich arbeite gerade unter Visual Studio mit dem C++ Compiler 6.00.8168.0
    ...arbeite gerade unter Visual Studio mit dem C++ Compiler 6.00.8168.0
    ...gerade unter Visual Studio mit dem C++ Compiler 6.00.8168.0
    ...unter Visual Studio mit dem C++ Compiler 6.00.8168.0
    ...Visual Studio mit dem C++ Compiler 6.00.8168.0
    ...mit dem C++ Compiler 6.00.8168.0
    ...dem C++ Compiler 6.00.8168.0
    ...C++ Compiler 6.00.8168.0
    ...6.00.8168.0
    6.00.8168.0

    6.00.8168.0 !!!

    -----=====>>>>> 😮 6.00.8168.0 😮 <<<<<=====-----

    😮😮😮

    SACHMA, WILLSTE MIK VERARSCHE?
    WILLSTE MIK VERARSCHE?



  • dot schrieb:

    Und seit wann supported MSVC __VA_ARGS__? VS2005.
    Kann VS2005 C99? Eher nicht...

    Boah, dann ist der Haufen ja noch inkonsequenter, als ich gedacht habe. 😮 Ich hätte ernsthaft erwartet, dass die das in einem Rutsch einbauen. Aber MS hat ja schon immer eher ihre eigenen Standards durchdrücken wollen ... welches C können die dann jetzt? C89+C99/2?



  • dachschaden_off schrieb:

    welches C können die dann jetzt? C89+C99/2?

    Das letzte sinnvolle: C90



  • Danke für die Information.


Anmelden zum Antworten