Blog
Programming in D Programming with the D programming language
d programming language book functions program programming types parameters type operator variables attributes chapter classes Latest posts Added 'deprecated' that helps with deprecation process of library features, 'extern' that is for declaring external symbols, and 'extern()' that allows interacting with libraries of other languages (extern(C), extern(C++, std), etc.).
Oct 24, 2015
You can download most of the code samples that appear in the book as a .zip file.
Oct 16, 2015
The index section of the book.
Aug 21, 2015
Cooperative multitasking in D with fibers.
Aug 17, 2015
Pragmas that allow interactions with the compiler, including the most recent pragma(inline).
Aug 17, 2015
The rules that specify the execution order of chained operators and the expressions that they use.
Aug 17, 2015
"Instead of falling for getting things done quickly, 'Programming in D' focuses on getting things done properly, to the lasting benefit of its reader."
Aug 17, 2015
The .offsetof property to get the offsets of and the align attribute to specify the alignments of struct members.
Nov 25, 2014
Inheriting 'in' and 'out' blocks of interface and class functions.
Nov 25, 2014
__MODULE__, __FILE__, __LINE__, __FUNCTION__, and __PRETTY_FUNCTION__
Nov 25, 2014
The pragma directive
Nov 25, 2014
Defining functions, structs, and classes inside existing scopes.
Nov 25, 2014
Lvalues, rvalues, their differences, and 'auto ref' parameter type that can accept either kind.
Nov 25, 2014
Automatically generated index section for the PDF version of the book.
Nov 25, 2014
The attributes of the Throwable interface, collateral exceptions, and an example of accessing collateral exceptions through the .next property.
Sep 18, 2014
The @disable attribute to disable special functions of structs.
Sep 12, 2014
Assigning user defined attributes to type and variable declarations, testing the attributes at compile time, and compiling the program according to those attributes.
Aug 26, 2014
Using type traits in conditional compilation.
May 29, 2014
Multi-threaded programming in D by data sharing.
May 20, 2014
Useful range templates of the std.range module. Providing range capabilities depending on the capabilities on dependent ranges.
Nov 1, 2013
Template and string mixins that allow inserting compile-time generated code into the source code.
Nov 1, 2013
More features of D functions: auto, ref, auto ref, and inout return attributes; pure and nothrow behavioral attributes; and @safe, @trusted, and @system memory safety attributes.
Nov 1, 2013
Tuples, which combine values of different types and make them available similar to struct objects, and TypeTuple, which represents the concept of 'list of values' as seen in parameter lists, template argument lists, and array literal initialization lists.
Sep 19, 2013
The code examples in the Ranges chapter are made const-correct and they take advantage of UFCS.
Jul 9, 2013
Labels that give names to code lines and the goto statement that make program execution go to a label.
Jun 28, 2013
Sharing the same memory area for multiple members.
Jun 26, 2013
Providing foreach support for structs and classes.
Jun 14, 2013
Function pointers and delegates allow storing how the program should behave at a later time. Lambdas (anonymous function or function literals) make code more readable and reduce boilerplate code.
Jun 9, 2013
is expression, one of the most powerful compile-time features of the D programming language.
Jun 3, 2013
The D features that enable manipulating data bit-by-bit.
May 21, 2013
Pointers are variables that provide access to other variables. They are low-level capabilities of the microprocessor.
Jan 31, 2013
'alias this' enables automatic type conversions of user-defined types.
Jan 31, 2013
'alias' assigns aliases to existing names
Jan 31, 2013
Properties allow using member functions like member variables.
Jan 31, 2013
UFCS enables the member function syntax even for regular functions.
Jan 31, 2013
Preserving class invariants by limiting access to class members.
Nov 2, 2012
'destroy()' to call destructors explicitly and 'scoped()' to destroy objects automatically.
Nov 2, 2012
The 'interface' keyword to define class interfaces.
Nov 2, 2012
The Object class that is at the top of class hierarchies and its member functions toString(), opEquals(), opCmp(), and toHash().
Nov 2, 2012
Inheriting the members of existing classes.
Nov 2, 2012
The 'class' feature of the D programming language, which supports the object oriented programming (OOP) paradigm.
Nov 2, 2012
Defining the behaviors of operators for structs to allow their uses as convenient as the fundamental types.
Sep 15, 2012
Receiving LinkTerminated and OwnerTerminated exceptions as messages.
Aug 9, 2012
Explain the parameters of the functions of the std.parallelism module: Work unit size and buffer size.
Aug 9, 2012
The consequences of marking function parameters const or immutable.
Aug 9, 2012
Marking parameters as 'const ref' and member functions as 'const' in order to be able to use them with immutable variables as well.
Jun 10, 2012
Defining functions that are closely related to a struct inside the curly brackets of that struct definition.
Jun 10, 2012
The function overloading feature that enables defining multiple functions having the same name.
Jun 10, 2012
Default parameter values and variadic functions.
Jun 10, 2012
The 'struct' feature for defining higher-level concepts as user-defined types.
Jun 10, 2012
← Prev ✦ Random Next → Visit ↗ Feed Kagi ↗