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.

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

Copyright © 1999-2023 by the D Language Foundation | Page generated by Ddoc on Tue Aug 1 20:58:01 2023