Kompatibilität



  • Ich entwickle auf einem relativ aktuellem System und verwende daher oft gedankenlos STL-Funktionen wie zB

    string.pop_back()
    
    // or
    
    const_iterator cit = abc.cbegin()
    

    Leider laufen diese Funktionen meist nicht unter "älteren" Installationen oder unter Linux mit GNU-Compiler. Wie kann ich solche Probleme während der Entwicklung von vornherein vermeiden? Gibt es eine Extension oder einen Schalter unter VS2010?

    Danke


  • Mod

    Tomahawk schrieb:

    Wie kann ich solche Probleme während der Entwicklung von vornherein vermeiden?

    Du benutzt da (geplante) C++0x-Features. Wenn du für diesen (noch nicht verabschiedeten!) Standard programmierst, dann musst du auch einen Compiler benutzen der diese Features schon unterstützt.

    Bei vielen Compilern ist dies aber bereits der Fall, da diese Bedienkomfortänderungen an der STL ziemlich trivial zu implementieren sind. Beim GNU Compiler kannst du z.B. den Schalter -std=c++0x benutzen und diese Sachen sollten dann auch mit älteren Versionen schon funktionieren. Wie du so etwas für andere Compiler aktivierst, erfährst du in deren Handbuch.



  • Tomahawk schrieb:

    Gibt es [...] einen Schalter unter VS2010?

    Das wüsste ich auch gerne. Ich habe bisher nichts gefunden, wie man die C++0x Features bei VS10 abschalten kann -- habe aber auch nicht lange danach gesucht. Statt Dich auf das zu verlassen, was Dir Intelli-Sense anzeigt, könntest Du dich aber auch auf die eine oder andere Std-Lib-Referenz berufen.



  • Unter VS2010 kann man einstellen, dass das "alte", d.h. VS2008 Compiler Toolset benutz wird (befindet sich unter Projekt Einstellungen).


Anmelden zum Antworten