Rückfrage: Copy einer const std::queue



  • Mahlzeit.

    Mich überkamen plötzlich Zweifel, ob ich korrekt vorgegangen bin.

    Folgender Hintergrund:

    Ich musste eine von mir gewartete Applikation ändern, da sich die bereichsinterne Fehlerbehandlung geändert hat (Frühe hatte ich direkten Zugriff auf die Fehler, die in einer STL-Liste lagen. Wegen diverser Gründe wurde dann entschieden, daß die Fehler in einer Queue gespeichert werden.

    Zurückgegeben wird ein const-Zeiger auf eine const-queue.

    Nun muss ich aber blöderweise in meiner Applikation eine Fehlerbehandlung machen, bevor die queue an das Zentrallogging geht. Ich will also eine Kopie der queue haben - was ich jetzt über eine einfache Zuweisung erledigt habe.

    Die Frage wäre also:

    Kann ich mit std::queue<Fehlerdatentyp> Fehlerdaten = LoggingTool.getFehlerDaten();

    arbeiten, bzw, arbeite ich jetzt wirklich mit einer Kopie oder habe ich nur den const weggecastet und mache alles kaputt? 😉

    Danke im Voraus.



  • das geht so.



  • Zu "früher hatte ich direkten Zugriff":

    Früher gab es keine Methode "getFehlerDaten" sondern zwei Methoden prepareErrorIteration() und getNextError() die jeweils einen const Pointer auf einen const Datensatz zurückgaben. Da ich nur lese, war mir das egal.

    Blöderweise komme ich an den zweiten Wert der Queue ja nur ran, wenn ich den ersten "poppe".. also muss ich die Queue ändern, was ich ja mit einer const const queue nicht kann 😉



  • volkard schrieb:

    das geht so.

    Besten Dank. Wie gesagt, eigentlich war ich mir sicher, das es so geht. Aber irgendwas hat "klick" gemacht und da waren diese Zweifel 😉


Anmelden zum Antworten