Smart Pointer Konstruktor aufruf



  • Hallo,

    Google gab mir leider nicht das raus was ich suchte, deswegen frag ich hier.

    std::unique_ptr<KlasseA> obj = std::make_unique<KlasseA>(78,"hi");
    

    wenn zum Beispiel sowas schreibe, möchte ich das mir die Parameter die ich angeben muss angezeigt werden? in dem Fall das ein int und ein string gebraucht wird. Bzw. die andereren Überladungen des Konstruktors.

    sowie es bei einem "normalen"

    KlasseA* obj = new KlasseA(78,"hi");
    

    wäre.

    Würd mir einiges an Arbeit ersparen...

    Benutze Visual Studio 2013.

    Wenn es da nen Kniff gibt um das anzuzeigen wäre echt nice.



  • hallo123 schrieb:

    Wenn es da nen Kniff gibt um das anzuzeigen wäre echt nice.

    gibt's leider nicht



  • Naja, wenn du tippst:

    std::make_unique<KlasseA>(KlasseA(_
    

    ("_" = Cursor)
    dann sollte jede IDE schlau genug sein die Parameter anzuzeigen.
    Und wenn du die Parameter fertig hingeschrieben hast, dann machst du das überflüssige KlasseA( einfache wieder weg.

    Ich könnte mir vorstellen dass es theoretisch möglich wäre einen Tool wie Intellisense beizubringen zu erkennen dass Parameter eines Variadic-Template nur 1:1 an eine einzige Funktion (wie hier den Konstruktor von KlasseA) weitergegeben werden, und sich dann die vorhandenen Overloads und deren Parametertypen+Namen von dort zu holen. Wäre aber sicher etwas knifflig. Aber vielleicht kommt das ja noch irgendwann.



  • Man konnte ja ein neues Attribut an den Parameter machen, das dann als Hinweis für IntelliSense dient.
    Wäre einfacher als das erkennen zu lassen.


Anmelden zum Antworten