Fehler bei Initialisierung



  • Servus,

    bekomme gerade folgende Fehlermeldung:
    error: invalid initialization of non-const reference of type

    Der gesamte Quellcode liegt in einer Datei hier:
    http://www.jochen-bauer.net/downloads/main-01032011.txt
    (kurz vor dem Beginn des letzten Drittels des Quelltextes)

    Der Beginn des problematischen Abschnittes ist mit // === Fehler ... leicht auffindbar. Beim Googeln war diese Fehlermeldung auf einen simplen Schreibfehler zurückzuführen, aber ich sehe keinen.

    Danke vorab.



  • Ah langsam kommt Licht ins Dunkel ... lege ich die Typenbezeichnung übereinander stimmt nur der Adressoperator nicht überein. Mal weiterschauen ...

    // ‘seqan::StringSet<seqan::String<char, seqan::Alloc<void> >, seqan::Owner<const seqan::Tagseqan::Default_ > >&’ from a temporary of type

    // ‘seqan::StringSet<seqan::String<char, seqan::Alloc<void> >, seqan::Owner<const seqan::Tagseqan::Default_ > >’



  • ... ist gelöst, ich hatte bei meinen Rumprobierversuchen, auch einfach vergessen den Adressoperator zu entfernen. Habe mal alles testweise auf Werte statt Referenzen umgestellt und es fluppt.

    seqan::CharString currentSequenceString;

    currentSequenceString = seqan::value( msa.getSequencesList(), seqListSizeElementCounter );



  • Also du solltest...

    oh.



  • Jay1980 schrieb:

    ... ist gelöst, ich hatte bei meinen Rumprobierversuchen, auch einfach vergessen den Adressoperator zu entfernen.

    Das hat mit Adressoperatoren nichts zu tun. Du hast einen temporären Wert an eine nicht konstante Referenz zu binden versucht, das läuft nicht. Mach die Referenz const, schon fluppt es. (und ist in dem Fall schneller als call by value)


Anmelden zum Antworten