Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

# 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.

Copyright © 1999-2023 by the D Language Foundation | Page generated by Ddoc on Mon May 1 15:50:18 2023