Entwicklung der C++ Standard-Library
-
Hallöle,
Ich finde irgendwie, die C++ std-Lib entwickelt sich in die falsche Richtung. Nach und nach kommen mit jedem Standard immer mehr Header hinzu, allerdings in einer Flachen Ordnerstruktur, namespaces werden ebenfalls kaum benutzt, dadurch wird das ganze unübersichtlich. Ich finde, die std-Lib sollte von Grund auf neu strukturiert werden, mit Unterverzeichnissen und Namespaces, etwa <util/containers/vector>, <tmp/algorithm>, <concurrent/thread>, o.ä.
Abgesehen davon sollte es imo eine Möglichkeit in der Sprache selbst geben, zu überprüfen, ob ein Compiler bestimmte Teile der stdlib unterstüzt, etwa eine requires-Direktive:
requires std.concurrent;Gleichzeitig muss ein Compiler somit nicht alle Sprachfeautures unterstützen (z.B. weil sie auf der jeweiligen Plattform nicht zur Verfügung stehen) und kann ein ordentliche Fehlermeldung ausgeben.
Wie seht ihr das?
Grüße,
Der Kellerautomat
-
Kellerautomat schrieb:
Hallöle,
Ich finde irgendwie, die C++ std-Lib entwickelt sich in die falsche Richtung. Nach und nach kommen mit jedem Standard immer mehr Header hinzu, allerdings in einer Flachen Ordnerstruktur, namespaces werden ebenfalls kaum benutzt, dadurch wird das ganze unübersichtlich. Ich finde, die std-Lib sollte von Grund auf neu strukturiert werden, mit Unterverzeichnissen und Namespaces, etwa <util/containers/vector>, <tmp/algorithm>, <concurrent/thread>, o.ä.
Und warum sollte man das tun?
Bei NS gibt es schon unterscheidungen wie z.B. std::chrono.
Aber warum willst du die Header neu ordnen?
Abgesehen davon sollte es imo eine Möglichkeit in der Sprache selbst geben, zu überprüfen, ob ein Compiler bestimmte Teile der stdlib unterstüzt, etwa eine requires-Direktive:
requires std.concurrent;Gleichzeitig muss ein Compiler somit nicht alle Sprachfeautures unterstützen (z.B. weil sie auf der jeweiligen Plattform nicht zur Verfügung stehen) und kann ein ordentliche Fehlermeldung ausgeben.
Wie seht ihr das?
Grüße,
Der KellerautomatKlingt vernünftig. Nur würd ich es über den Preprozessor machen.
:schland:
-
Welches konkrete Problem soll gelöst werden?
-
Für C++1X wird an einem Modulsystem gearbeitet. Bei der C++Now! gab es einen Vortrag dazu. Ich weiß aber nicht, wie konkret das ganze ist.
-
camper schrieb:
Welches konkrete Problem soll gelöst werden?
Das Problem der zunehmenden Unübersichtlichkeit, welches in Zukunft gegeben sein wird, wenn noch größere Mengen an Komponenten in den Standard kommen.
-
Das Problem sehe ich nicht. Alles, was ich benutzen moechte, wird ueber Header gesteuert. Das
std::chronoein eigener namespace ist, finde ich trotzdem gut. Wenn ein Compiler bei seiner std-Library dinge nicht unterstuetzt, so laesst er einfach den Header weg, bezw. bietet einen Dummyheader an, der zur Compilezeit einen Fehler generiert.
-
Wir werden sehen. Ich empfinde es trotzdem bereits jetzt als Sauhaufen.
-
Ich nicht.