Name: Anonymous 2015-05-03 10:04
D:
no more preprocessor
no more headers
faster compilation
order of declaration is not important, no need to predeclare
a name conflict when importing modules with the same identifier trigger an error. Impossible to use the wrong symbol unknowingly.
no more implicit conversion of arrays to pointers
++pre and post-increment++ have been fixed
ranges are simpler to implement than iterators
the D STL is actually readable
move and copy semantics radically simplified
array slices are supported at the langage levels (pointer carrying their length), more bounds-checking ensues
C++ code is unittested at great pains : unit tests have been made a builtin
documentation comments are builtin to avoid the need for an external tool that inevitably no-one uses
D has a package manager, C++ has none that is popular in its community
stack variables / members are initialized by default. This fact alone would have saved me months of debugging C++ code
lexing stage separated from parsing stage separated from semantics
easier and more powerful templates that allow the average programmer to create meta-programs routinely
productivity generally increased by the GC
saner operator overloading
Sepples:
C++ seems a bit more thorough and specified
C++ story for resources is better
no more preprocessor
no more headers
faster compilation
order of declaration is not important, no need to predeclare
a name conflict when importing modules with the same identifier trigger an error. Impossible to use the wrong symbol unknowingly.
no more implicit conversion of arrays to pointers
++pre and post-increment++ have been fixed
ranges are simpler to implement than iterators
the D STL is actually readable
move and copy semantics radically simplified
array slices are supported at the langage levels (pointer carrying their length), more bounds-checking ensues
C++ code is unittested at great pains : unit tests have been made a builtin
documentation comments are builtin to avoid the need for an external tool that inevitably no-one uses
D has a package manager, C++ has none that is popular in its community
stack variables / members are initialized by default. This fact alone would have saved me months of debugging C++ code
lexing stage separated from parsing stage separated from semantics
easier and more powerful templates that allow the average programmer to create meta-programs routinely
productivity generally increased by the GC
saner operator overloading
Sepples:
C++ seems a bit more thorough and specified
C++ story for resources is better