Articles
More articles can be found on the corresponding wiki page.
FAQ
Frequently answered questions about D.
const(FAQ)
Frequently answered questions about D's const and immutable.
Floating Point
Don Clugston goes into detail about floating point numbers in D and the pitfalls one may encounter.
Warnings
This is about compiler warnings in general, and dmd's warnings in particular.
Rationale
Questions about the reasons for various design decisions for D often come up. This addresses many of them.
Builtin Rationale
D offers several capabilities built in to the core language that are implemented as libraries in other languages. This article answers why.
C to D
Coming from C? Here are various examples comparing the D way to the C way.
C++ to D
Coming from C++? Here are various examples comparing the D way to the C++ way.
C Preprocessor vs D
D doesn't have a preprocessor. This article shows how to do in D what would be a task for the preprocessor in C.
Code coverage analysis
D compilers come with a builtin code coverage analyzer. This article explains why and how to use it.
Exception Safety
This article is about exceptions and how RAII and scope guard statements relate to them.
Hijacking
Function hijacking is when old code accidentally calls a newly added or changed function because it shadows the intended one. This article is about how D prevents different kinds of hijacking.
Introduction to std.datetime
Jonathan M Davis presents std.datetime which was added in version 2.052 (Jul 10, 2011), and compares it to the superseded std.date.
Lazy Evaluation
Walter Bright goes into the details of lazy parameters in D.
Migrating to Shared
Since version 2.030 (May 11, 2009) D uses thread local storage (TLS) by default for static and global variables. The article shows the alternatives to TLS that are available in D.
String Mixins
A short article about D's mixin statement which allows to insert arbitrary code from a string, and how it compares to the C preprocessor.
Regular Expressions
Dmitry Olshansky shows how to use regular expressions in D with std.regex.
SafeD
Bartosz Milewski writes about SafeD, the memory-safe subset of D.
Templates Revisited
Walter Bright writes about how D improves upon C++ templates.
Template Constraints
A template can be constrained to only apply when a compile-time evaluable boolean expression is true.
Compile-time Sequences
A compile-time sequence is a sequence of compile-time entities - types, symbols (names) and values. This article shows how to work with them.
Variadic Templates
This article is about the D idiom of implementing variadic functions with variadic templates.
Template Comparison
A comparison between D's and C++'s templates.
D Slices
Steven Schveighoffer writes about slices and dynamic arrays in D. Unfortunately, this article uses slightly different terminology than the language reference: What the article calls a slice is a dynamic array in the language reference, and what the article calls a dynamic array is not named specifically by the language reference. Still, the article is a great help in getting a good understanding of D's array semantics.
D's Contract Programming vs C++'s
A comparison between D's and C++'s contract programming.
Writing Shared Libraries on Linux
A guide to writing shared libraries with D on Linux.
Coralling Wild Pointers with ref return scope
How to use the ref, return and scope annotations to prevent the escape of pointers. Escaping pointers can cause memory corruption and other problems.
Creating Windows DLLs
Windows DLLs are quite different from shared libraries on other platforms. This article shows how to do them.