C++17
-
5cript schrieb:
Wehe ihr lest meine alten posts !

Ich habe sie mir angeguckt und dafür nur drei Worte:
Oh mein Gott!
-
im aktuellen proposal zu den modulen sind die "bloß" eine ergänzung zu den header. funktioniert im prinzip so:
#include <iostream> #include <cwhatever> module foobar; //bis hierhin ganz gewöhnlich //ab hier ist alles teil eines moduls. export void fun(); //teil des interfaces des moduls void bar(); //nicht teil des interfaces import quuz; //importiert alle im modul quuz exportierten symbolenicht kompliziert, nicht aufwändig, aber mächtig - allerdings fürchte ich mich ein bisschen davor, auf den kompilier-kaffee verzichten zu müssen...
-
bei ranged for:
end() kann endlich einen anderen Typ als begin() haben.
Das spart jede Menge Dazuerfindung von Iteratorwerten für Generatoren.
-
GottJesusGeist schrieb:
5cript schrieb:
Wehe ihr lest meine alten posts !

Ich habe sie mir angeguckt und dafür nur drei Worte:
Oh mein Gott!
da war ich 14

</offtopic>
-
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).
-
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 mitautooder kann man die einzelnen Typen auch explizit angeben?