C++17



  • Aber Header und Cpp-Datei weiterhin geschrieben werden müssen?

    und das hätte dann welchen Vorteil?



  • Artchi schrieb:

    Die Modules scheinen aber kein Ersatz für Headers zu sein, oder? Kann es sein, das die nachher nur für den User-Code sind? Aber Header und Cpp-Datei weiterhin geschrieben werden müssen? Also das man alles so wie bisher macht, am Ende dem Tool sagt, das es daraus ein Module generieren muss? Nicht das was ich mir erhofft habe (doppelte Arbeit sparen).

    so wie ich das sehe - schon. nur kann und soll es auch weiterhin header geben. header sind ja nichts anderes als dateien, die zu einer übersetzungseinheit (ÜE) verwurstet werden. so wie ich es verstehe, wird man zukünftig für eine ÜE definieren können, dass teile von dieser als modul zu verstehen sind (auch: ein modul kann sich über mehrere ÜE erstrecken), wobei bestimmte symbole aus dem modul heraus exportiert werden können, die der compiler dann sieht. angeblich soll es sogar versuche geben, ein einheitliches format für die module über die compiler-hersteller hinweg zu definieren.

    headerdateien wird es weiterhin geben und sie werden auch weiterhin ihre berechtigung haben. ca. genauso wie makros.

    im detail kenne ich den aktuellen stand des proposals aber nicht.



  • Doch, Modules ersetzen Header. Das ist Sinn der Sache. Mit Visual Studio kann man das sogar schon ausprobieren.



  • TyRoXx schrieb:

    Doch, Modules ersetzen Header. Das ist Sinn der Sache. Mit Visual Studio kann man das sogar schon ausprobieren.

    Im C++ Sinn eher Ergänzen als Ersetzen.



  • krümelkacker schrieb:

    Es gibt ja jetzt auch ein "destructuring bind":

    void cxx17() {
        auto [mantissa, exponent] = blah(3.14159265);
    }
    

    Das ist nett. Das Zurückgeben von mehreren Werten aus einer Funktion ist damit ergonomischer.

    Echt, sowas soll kommen?

    Wozu braucht man da dann noch das auto , das sieht irgendwie sehr seltsam aus... geht das dann nur mit auto oder kann man die einzelnen Typen auch explizit angeben?


Anmelden zum Antworten