C++ Bonus [029] – Modules



Vielen Dank an meine Unterstützer auf Patreon: https://www.patreon.com/Brotcrunsher
Liked meine Facebook Seite: http://www.facebook.com/Brotcrunsher

00:00 Einleitung
00:53 Vorteile
04:00 Trennung .h und .cpp
04:57 Implementiert als Module
07:08 Namespaces in Modules
09:08 Non-Features
10:22 Wieso das kompilieren von Modules schneller ist

18 thoughts on “C++ Bonus [029] – Modules

  1. finde diese neuerung wirklich geil, aber warum kann ich zb. kein import <iostream> benutzen? muss man das dann extra compilen? denn er sagt er kann das modul nicht finden ( ja weils wohl von VS noch nicht bereitgestellt wurde? ) kannst du evtl ein ausführlicheres video dazu machen? setup für modules wäre mega nice!

  2. Ich bin verwirrt, die windowsapi hat eine Funktion 'getModuleInfo' welche es schon länger gibt. Du sagst dass es das Modulfeature in c++ erst seit kurzem gibt, stellt sich mir die Frage was das winapi-module denn ist.

  3. Das Problem ist, dass meistens die Betriebssysteme / Frameworks die in der Produktion bzw Industrie verwendet werden extrem nachhängen und noch keinen Kompiler haben der die neuen Versionen von C++ unterstützt. Gerade wenn man dann mit RTOS wie QNX oder so arbeitet dann kann man froh sein wenn c++14 unterstützt wird. Die praktische Anwendung bei C++ hängt so extrem hinterher, dass es echt weh tut. Ich wäre schon froh wenn ich c++17 verwenden könnte geschweige denn c++20…

  4. Guten Morgen erst einmal vielen dank für das Video und die gute und einfache Zusammenfassung. 👍
    Ich hätte da persönlich aber einen kleinen Kritikpunkt. Und zwar wäre es super, soweit es möglich ist, wenn du die Werbung z.B. an den Anfang oder an einem Übergang zu einem neuen Abschnitt setzen würdest.
    Ich spreche da jetzt mal für mich aber ich finde es störend wenn mitten im Satz so eine Unterbrechung reingrätscht. 😂
    Ansonsten sind die Videos wirklich super. Eine tolle organisierte Führung durch das Thema, Texttempo ist perfekt und einfach zu verstehen.

  5. Bei mir gibt es Massen an Errors, wenn ich die Modules benutzen möchte. Auch wenn ich den experimentalen Kram in VS aktiviert habe. Mittlerweile habe ich es hinbekommen, dass alles funktionier, außer der Import eines Modules klappt noch nicht. Angeblich findet er die Datei nicht. Hast du ein Ahnung woran das liegen kann?

  6. Das Video hat Appetit gemacht, so dass ich es morgen direkt mal ausprobieren werde. Ich habe gerade ein Projekt mit viel #include <iostream>. Mal schauen, was passiert, wenn ich es ersetze durch import <iostream>; (Achtung: nun mit Semikolon). Vielen Dank!

  7. Noch eine Frage… wie funktioniert das mit Templates zusammen? Werden Module dann neu für jede unterschiedliche Verwendung eines Templates compiled oder bleiben Templates als einziges in Header-Dateien wenn möglich?

  8. Wenn Source- und Header-Dateien nicht mehr getrennt werden, braucht man dann für die Verwendung von Libraries nicht den kompletten Sourcecode in der Zukunft? Das klingt tatsächlich garnicht so gut… oder gibt es dafür eine Lösung? ^^'

  9. Sucht der Compiler bei import MyModule nach der MyModule.ixx/MyModule.cpp datei oder findet er es durch die angabe von export module MyModule?

    Danke für deine Videos

  10. Kann man innerhalb von einem Namespace imports einfügen, so dass alles aus den importierten Modulen dann im Namespace liegt? Dann könnte man beispielsweise für jede Klasse ein eigenes Modul erzeugen (ohne Namespace) und diese dann alle gesammelt in einem Modul importieren mit Namespace für die Nutzung.

  11. Wieder super erklärt, vielen Dank! Ich mag die Richtung, in die C++ geht, es wirkt immer futuristischer. Schade finde ich nur noch, dass man in Modules extra nochmal einen Namespace einbauen muss/sollte. Wäre eigentlich schöner, wenn man einfach schreiben könnte …

    export module MyMathLibrary with namespace;

    … oder etwas ähnliches, damit das gleich in einen gleichnamigen Namespace gepackt wird. Damit wären dann auch die Namenskonflikte unwahrscheinlicher.

Leave a Reply

Your email address will not be published. Required fields are marked *