Ist es sicher den this-Pointer zu speichern?


  • Mod

    Nathan schrieb:

    Kennt ihr beide nicht das neue "idiomatische" Pimpl Idiom?

    class foo
    {
       struct impl;
       std::unique_ptr<impl> pimpl;
    public:
       ~foo(); // destruktor muss dann natürlich in cpp definiert werden...
    };
    

    Macht in der Praxis kaum jemand so. Da in aller Regel sowieso noch Kopieren und Zuweisung definiert wird, ist der Nutzen gering.
    (Die Verwendung von unique_ptr erspart copy-ctor und -Opeerator sofern die Semantik stimmt; aber diese Verletzung der Regel der Drei bedarf im Prinzip schon wieder eines Kommentares der die Ersparnis negiert).

    Und früher zu auto_ptr-Zeiten war das eben undefiniert.



  • camper schrieb:

    Macht in der Praxis kaum jemand so. Da in aller Regel sowieso noch Kopieren und Zuweisung definiert wird, ist der Nutzen gering.
    (Die Verwendung von unique_ptr erspart copy-ctor und -Opeerator sofern die Semantik stimmt; aber diese Verletzung der Regel der Drei bedarf im Prinzip schon wieder eines Kommentares der die Ersparnis negiert).

    Habe ich nicht abgestritten, mag PIMPL generell nicht so.
    Daher weiß ich aber, dass unique_ptr mit unvollständigen Typen klar kommt.



  • Nathan schrieb:

    Habe ich nicht abgestritten, mag PIMPL generell nicht so.

    Falls du mal in die Verlegenheit kommen solltest, solche Namespace-Seuchen wie "windows.h" einbinden zu müssen, wirst du PIMPL mit anderen Augen sehen 😃
    (Gilt auch für diverse andere Bibliotheken, die den globalen Namensraum über Gebühr befüllen).

    Finnegan


  • Mod

    Nathan schrieb:

    Daher weiß ich aber, dass unique_ptr mit unvollständigen Typen klar kommt.

    Der einzige Grund aus dem du uns das mitteilen könntest ist um zu beweisen dass du es vorher wusstest. 😉


Anmelden zum Antworten