Hi
Zitat Zitat von Fab Beitrag anzeigen
Ich finde der Präprozessor integriert sich nicht richtig in die Sprache.
Man kann das alles auch schöner Lösen.
Wie ersetzt Du den Verkettungsoperator ##?
Und wie __LINE__ und __FILE__ auf elegantere Weise?
Zitat Zitat von Fab Beitrag anzeigen
In D wird pragma() wie eine Funktion behandelt ^^
pragma() ist ein Funktion.
Wenn Du an die Direktive #pragma anspielst, gebe ich dir völlig Recht: Dabei handelt es sich um eine äußert schwammig spezifizierte Präprozessordirektive!

Zitat Zitat von Fab Beitrag anzeigen
In D konzentriert man sich viel mehr auf die Hauptsache ... den Kompiler.
Gewagte Behauptung!

Zitat Zitat von Fab Beitrag anzeigen
Man kann in D sogar plattformunabhängige Socketprogrammierung betreiben.
Nicht weniger plattformunabhängig, als in C oder C++.
Wenn man eine Waschmaschine (die durchaus in C programmierbar sein kann) als mögliche Plattform betrachtet (und das kann man durchaus!), kannst Du Dir Deine D-Socketprogrammierung in die Haare schmieren. Wo es keine Sockets gibt, kann man auch keine Sockets programmieren.
Einen "ganz normalen Computer" (oder einen sonstige Plattform, die über Sockets verfügt) kannst Du in C oder C++ auch portabel programmieren.

Zitat Zitat von Fab Beitrag anzeigen
Ich halte das für die bessere Lösung. Wieso sollte man tausend weitere Programme über den Code laufen lassen.
Der Präprozessor ist Bestandteil des Sprachstandards.
Gerade im Rahmen großer Projekte wird heutzutage Kode oft nur noch generiert und nicht mehr mühevoll von Hand programmiert. Da bekommst Du als Programmierer den Kode u.U. garnicht mehr zu Gesicht und es laufen ausschließlich Programme über den Kode.

Zitat Zitat von Fab Beitrag anzeigen
Zumal ich auch noch finde das durch die ganzen #if und wie sie alle heißen, der Code unübersichtlicher wird.
Wir leben im Zeitalter von Syntaxhighlighting.
Und wo ist der visuelle Vorteil von integrierten inline-Funktionen gegenüber Präprozessormakros?

GreetZ RiDER