using zwischen template und Signatur?


  • Mod

    happystudent schrieb:

    Ok, das klingt ja schonmal gut, muss ich gleich mal googlen 🙂

    Entschuldige, Ich vergaß zu erwähnen dass diese noch gar nicht standardisiert und noch weniger implementiert sind. Sie sind für C++1Z geplant.
    (Das "Hoffentlich kommen die rein" bezog sich auf's Reinkommen in den Standard)

    Nach außen hin sieht das dann aus als könte ich beliebige Argumente in die Funktion reinjagen (was ja nicht der Fall ist) und der Rückgabewert erschließt sich auch nicht ohne in die detail Implementierung zu gucken...

    Es gibt für dein Problem eben AFAICS keine sonderlich elegante Lösung. 😃



  • template <typename Iterator>
    auto calculate_something(Iterator start, Iterator end, decltype(*Iterator()) start_value) -> decltype(start_value)
    {
        // Mach irgendwas
    }
    

  • Mod

    @TyRoXx: Erster April war gestern.



  • Arcoth schrieb:

    Entschuldige, Ich vergaß zu erwähnen dass diese noch gar nicht standardisiert und noch weniger implementiert sind. Sie sind für C++1Z geplant.
    (Das "Hoffentlich kommen die rein" bezog sich auf's Reinkommen in den Standard)

    Ach so, Ok... Dann hoffe ich das einfach auch mal 😃

    Arcoth schrieb:

    Es gibt für dein Problem eben AFAICS keine sonderlich elegante Lösung. 😃

    Schade, aber ich habs schon befürchtet.



  • Arcoth schrieb:

    @TyRoXx: Erster April war gestern.

    Danke für die Erinnerung.


  • Mod

    TyRoXx schrieb:

    Arcoth schrieb:

    @TyRoXx: Erster April war gestern.

    Danke für die Erinnerung.

    Dachtest du etwa dass dem TE nicht bewusst war dass Funktionsparametertypen auch decltype-specifier sein dürfen?



  • Arcoth schrieb:

    Dachtest du etwa dass dem TE nicht bewusst war dass Funktionsparametertypen auch decltype-specifier sein dürfen?

    Darum geht es gar nicht. Meine Lösung verwendet den Parametertyp als Rückgabetyp wieder, sodass man den Umweg über typename oder eine neue using -Syntax nicht gehen muss.
    Das ursprüngliche Problem ist damit gelöst.


  • Mod

    TyRoXx schrieb:

    Meine Lösung verwendet den Parametertyp als Rückgabetyp wieder

    Ahh, ich verstehe. Ich hatte die Frage gar nicht vollständig gelesen (Effizienz und so) und nahm an dass es um ein kosmetisches Problem ging, nicht um DRY. 💡



  • Wieso dann nicht gleich -> auto schreiben?

    Nene, ich denke dem happystudent ging es schon (zumindest auch) um Kosmetik.
    Und es gibt ja auch Fälle wo es nicht bloss um nen einzelnen Parameter geht, und der Ausdruck für den Typ wirklich ordentlich lange wird.



  • Ja, also es ging mir schon (auch) um "Kosmetik" wenn man so will 😃

    Mich nervt halt bei solchen template-Monstern vor allem die Parameterliste die man vom Intellisense angezeigt bekommt - da kann man oft gar nichts mehr erkennen weil alles voll von typename/decltype/declval/enable_if Gerümpel ist... (die Deklaration an sich ja auch, was die Lesbarkeit halt einfach erschwert).


Anmelden zum Antworten