Reguläre Ausdrücke regex



  • otze schrieb:

    std::tr1 ist kein standard? da gibts nämlich regEx

    Wo finde ich was darüber?? http://www.sgi.com/tech/stl/stl_index.html -> hier finde ich nämlich nichts.

    MFG THE_ONE





  • Installiere Boost. tr1 ist glaub ich eher als Testversion gedacht oder irre ich da?



  • boost.tr1 ist quasi boost im std::tr1 namespace. aber so gewöhnt man sich schon ein wenig dran 😉



  • D.h. das die Libary nicht dabei ist bei der STL, oder??

    Das Problem ist das ich nichts dazuinstallieren kann. Das ganze muss auf dem (UNI) Server laufen wo ich selber nichts hinzufügen kann. 😞

    MFG THE_ONE



  • Ben04 schrieb:

    Installiere Boost. tr1 ist glaub ich eher als Testversion gedacht oder irre ich da?

    Ja, da irrst du dich - TR1 ist eine offizielle Ergänzung zum ANSI-Standard.

    @One: Wenn du das nicht selber schreiben willst, kommst du um Zusatzbibliotheken nicht herum - auch die Boost-Lib mußt du auf deinem System unterbringen, um sie verwenden zu können 😉



  • Hab hier im Forum was zu TR1 und regEx gefunden: 👍
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1252537.html

    MFG THE_ONE



  • CStoll schrieb:

    Ben04 schrieb:

    Installiere Boost. tr1 ist glaub ich eher als Testversion gedacht oder irre ich da?

    Ja, da irrst du dich - TR1 ist eine offizielle Ergänzung zum ANSI-Standard.

    Seit wann? In der Version die ich gelesen habe steht:

    This technical report is non-normative. Some of the library components in this technical report may be considered for
    standardization in a future version of C++, but they are not currently part of any C++ standard. Some of the components
    in this technical report may never be standardized, and others may be standardized in a substantially changed form.

    Und weiter:

    The goal of this technical report it to build more widespread existing practice for an expanded C++ standard library. It
    gives advice on extensions to those vendors who wish to provide them.



  • Der TR1 wurde nämlich schon vom Komitee verabschiedet, das er in den C++2009-Standard rein kommt. Das einzige was rausfliegt und dagegen gestimmt wurde, sind die speziellen Mathfunktionen (zu teuer zu implementieren).

    Dinkumware schrieb:

    TR1 is the common shorthand for ISO/IEC TR19768, C++ Library Extensions, which is the first major addition to the Standard C++ library.

    Das non-normativ heißt nur, das er nicht bei einem ISO-C++ dabei sein muß. Huh, das ist natürlich ein Grund es nicht zu benutzen. Genauso wie der Grund keine externe Library benutzen zu dürfen. *kopfschüttel*

    Dinkumware schrieb:

    It is non-normative, which means it need not be provided by a conforming C++ compiler.

    http://www.dinkumware.com/tr1.aspx

    Da Dinkumware ein Mitglied des C++-Standardisierungskomitee ist, vertraue ich einfach mal deren Informationen. 😉



  • Bleibt dann tr1 auch im Namespace std::tr1 oder wandert das bei C++0x nach std, was mir logisch erscheinen würde. std::tr1 ist ein merkwürdiger Namespace.



  • Gute Frage, nächste Frage! 😉 Dieses Jahr soll der erste C++2009-Draft raus kommen, da werden wir es dann sicherlich nachlesen können.



  • Da bin ich ja beruhigt, daß Du das auch nicht weisst. Für mich ist das nämlich noch ein K.O.-Kriterium. Wenn ich heute ein Programm schreibe, welches vom Namespace std::tr1 ausgeht, compiliert das nicht mehr, wenn die Sachen nach std wandern. Ist zwar keine grosse Änderung, aber immerhin eine Änderung. Vielleicht weiß CStoll ja mehr?

    Tntnet



  • tntnet schrieb:

    Vielleicht weiß CStoll ja mehr?

    Bstimmt nicht 😉 (was ich über TR1 weiß, kann man grob in einem Satz zusammenfassen: TR1 exisitiert und soll den C++ Standard ergänzen. Punkt)



  • tntnet schrieb:

    Da bin ich ja beruhigt, daß Du das auch nicht weisst. Für mich ist das nämlich noch ein K.O.-Kriterium. Wenn ich heute ein Programm schreibe, welches vom Namespace std::tr1 ausgeht, compiliert das nicht mehr, wenn die Sachen nach std wandern. Ist zwar keine grosse Änderung, aber immerhin eine Änderung. Vielleicht weiß CStoll ja mehr?

    Durch die Namespaces, brauchst du eigentlich nichts ändern. Warum? Weil du doch tr1 und std parallel nutzen kannst. DAS ist doch gerade der Clou an den Namespaces. 👍 Du hast mit deinem zukünftigen C++2009-Compiler zwar std::regex drin, aber dich stört es doch auch nicht, wenn du noch zus. im Compiler-Pfad die tr1-Library im Zugriff hast. Es entstehen ja keine Konflikte. Die alten Sachen kannst du weiterhin problemlos unter tr1 benutzen, neue Sachen machst du mit dem std-Namespace. Auch innerhalb eines Projektes.



  • Übrigens, die Boost-Jungs machen das größtenteils so, um eine TR1-Impl. anzubieten:

    // array-Header vom TR1
    #include <boost/array.hpp>
    
    namespace std
    {
        namespace tr1
        { 
            using ::boost::array;
        }
    }
    

    Als boost-User habe ich die arrays aus beiden Namespaces zur Auswahl.

    Also, ich kann mir auch den Weg so vorstellen, das z.B. Dinkumware das gleiche macht. Sie haben jetzt TR1 implementiert. Wenn das ganze in den std-Namespace kommen sollte, machen die das gleiche Verfahren und haben autom. alles nicht nur im tr1 sondern zus. im std. Fertig.



  • Ich sag dazu nur:

    :g/std::tr1::/s//std::/
    

Anmelden zum Antworten