Automatische Fehlermeldungs-Formatierung bei Templates



  • Na gut, TextFilt sieht ganz gut aus.

    Edit: Kein Scherz! Das fand' ich eine Minute vor deinem Post!



  • Sone schrieb:

    Man sieht direkt, also ich jedenfalls, der Zuweisungsoperator wurde nicht überladen bzw. wahrscheinlich implizit als deleted deklariert.

    Sieht man das nicht schon vorher?

    use of deleted function blah

    reicht doch schon, um die Fehlermeldung zu verstehen.

    Und der GCC gibt sogar die Zeilennummer der entsprechenden Funktion an, wer mehr Info will, springt halt dorthin (zumindest meine IDE kann das).

    Wer versucht, die ganze Fehlermeldung durchzulesen und zu verstehen, der macht etwas falsch. Ich behaupte, die *Filt-Programme verleiten dazu und kosten einem schlussendlich nur noch mehr Zeit.



  • Nimm Clang. Der hat wunderschöne Fehlermeldungen!



  • errorempathie schrieb:

    Sone schrieb:

    Man sieht direkt, also ich jedenfalls, der Zuweisungsoperator wurde nicht überladen bzw. wahrscheinlich implizit als deleted deklariert.

    Sieht man das nicht schon vorher?

    use of deleted function blah

    reicht doch schon, um die Fehlermeldung zu verstehen.

    Nö. Dann fragt man sich, welche. Und dann guck ich durch die ganze Fehlermeldung durch.



  • Sone schrieb:

    errorempathie schrieb:

    Sone schrieb:

    Man sieht direkt, also ich jedenfalls, der Zuweisungsoperator wurde nicht überladen bzw. wahrscheinlich implizit als deleted deklariert.

    Sieht man das nicht schon vorher?

    use of deleted function blah

    reicht doch schon, um die Fehlermeldung zu verstehen.

    Nö. Dann fragt man sich, welche. Und dann guck ich durch die ganze Fehlermeldung durch.

    Oft kann man es aus dem Kontext erraten.
    Und sonst steht in der Fehlermeldung doch dabei, auf welcher Zeile die besagte Funktion ist. Klick -> Schon ist man auf der Funktionsdefinition und sieht, um welche es sich handelt.



  • clangfan schrieb:

    Nimm Clang. Der hat wunderschöne Fehlermeldungen!

    Nein, ich mag GCC. :p



  • Sone schrieb:

    SeppJ schrieb:

    Sone schrieb:

    Gibt es schon sowas ähnliches - sicher, oder?

    Ja, STLFilt und Konsorten.

    Und wo genau formatiert STLFilt "nur" irgendwas? Soweit ich sehe, ist es mehr oder weniger ein kompletter Compiler-Mod der sich auch noch beim Starten über ein fehlendes Python-Skript beschwert. 👎
    Ich wollte nur ein kleines Programm, dass mir den Input formatiert ausgibt. Schon ein Online Teil würde es tun.

    Du guckst nicht richtig.
    STLFilt filtert nur das was der Compiler ausgibt.
    Zur einfacheren Verwendung gibt's dann Proxy .exen die man verwenden kann um den Compiler aufzurufen und die zurückgegebenen Meldungen gleich schön formatiert ausgeben zu lassen. Der original Compiler wird dabei aber in keiner Weise verändert.



  • ...



  • Ich glaube, mein Haupt-Problem ist Code-Blocks, nicht GCC... 😃
    Das Panel, dass die Fehlermeldungen anzeigt, ist doof. Denke, der ein oder andere wird da zustimmen - die Fehlermeldungen sind alle nur in einer Zeile, erst im Build Log werden sie umgebrochen.

    Aber ich bin zu Faul alle Libs auf VS umzukonfigurieren. Besides, die C++11-Unterstützung ist eine Scheiße - sind variadic templates eigentlich überhaupt möglich? 😞

    Hier mal ein Bild: http://s7.directupload.net/images/130601/kcawarxt.png
    Und hier der Build-Log: http://s1.directupload.net/images/130601/ewjikfxt.png

    Versteht mich jetzt jemand?

    ~Übrigens, Swordfish, du bist erst ~26? Also ist es für unsere Liebe noch nicht zu spät.~



  • Swordfish schrieb:

    Sone schrieb:

    clangfan schrieb:

    Nimm Clang. Der hat wunderschöne Fehlermeldungen!

    Nein, ich mag GCC. :p

    gcc-concepts?

    Was ist das? Meinst du ConceptGCC? Ich denke nicht.

    Ah, ich weiß. Es findet sich zwar nichts auf google, aber ich weiß genau was du meinst.
    Das hier ist der Anfangs-Codeausschnitt aus dem Funktionstemplate std::search_n .

    // concept requirements
          __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
          __glibcxx_function_requires(_EqualOpConcept<
    	typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
    

    Und was bringt mir das?



  • ...



  • Sone schrieb:

    clangfan schrieb:

    Nimm Clang. Der hat wunderschöne Fehlermeldungen!

    Nein, ich mag GCC. :p

    Solange du kein OpenMP verwendest, nimm Clang.

    Ansonsten überlege ich mir, ob ich für meine Standard template parameter einfach ein sed script implementiere, das die langen Namn durch ihre typedefs im Code ersetzt. Viel besser als umformatieren.



  • Ich höre so viel positives über Clang. Wenn ich jetzt mein Projekt mit Ogre3D habe, kann ich einfach den GCC 4.6.2 durch Clang ersetzen ? Ich glaube nicht.

    Ich downloade es mir trotzdem. Und ich brauche endlich wieder ein neues Linux. 😃



  • FourWins

    Nur so am Rande: "Vier gewinnt" nennt man auf englisch "Connect Four".
    🙂



  • krümelkacker schrieb:

    FourWins

    Nur so am Rande: "Vier gewinnt" nennt man auf englisch "Connect Four".
    🙂

    Mist, aber ich dachte das wäre hier...
    Egal. Schnell Replace anwenden.
    Fertig.

    Ja, Concepts sind nice. Die kannte ich übrigens schon vorher, nur um das mal klar zu stellen - mir war jetzt nicht klar - gcc concepts?
    Aber ich will keinen Mod, ich entwickle doch größtenteils auf Windows. Und ich will nicht selber GCC kompilieren.


Anmelden zum Antworten