This package implements generic algorithms oriented towards the processing of sequences. Sequences processed by these functions define range-based interfaces. See also Reference on ranges and tutorial on ranges.
Functions and types that manipulate built-in arrays and associative arrays.
Functions which operate on ASCII characters.
Support for Base64 encoding and decoding.
Arbitrary-precision ('bignum') arithmetic.
Bit-level manipulation facilities.
Identify the compiler used and its various features.
This module contains the Complex type, which is used to represent complex numbers, along with related mathematical operations and functions.
|Tid||locate ownerTid register spawn spawnLinked thisTid Tid TidMissingException unregister|
|Message passing||prioritySend receive receiveOnly receiveTimeout send setMaxMailboxSize|
|Message-related types||LinkTerminated MailboxFull MessageMismatch OnCrowding OwnerTerminated PriorityMessageException|
|Scheduler||FiberScheduler Generator Scheduler scheduler ThreadInfo ThreadScheduler yield|
This module defines generic containers.
A one-stop shop for converting values from one type to another.
Implements functionality to read Comma Separated Values and its variants from an input range of dchar.
Demangle D mangled names.
This module describes the digest APIs used in Phobos. All digests follow these APIs. Additionally, this module contains useful helper methods which can be used with every digest type.
Classes and functions for handling and transcoding between various encodings.
This module defines functions related to exceptions and general error handling. It also defines functions intended to aid in unit testing.
Utilities for manipulating files and scanning directories. Functions in this module handle files as a unit, e.g., read or write one file at a time. For opening files and manipulating them via handles refer to module std.stdio.
This package provides string formatting functionality using printf style format strings.
Functions that manipulate other functions.
Processing of command line options.
Implements a signed 128 bit integer type.
Implements logging facilities.
Contains the elementary mathematical functions (powers, roots, and trigonometric functions), and low-level floating-point operations. Mathematical special functions are available in std.mathspecial.
Mathematical Special Functions
Templates to manipulate template parameter sequences (also known as alias sequences).
Read and write memory mapped files.
This module is a port of a growing fragment of the numeric header in Alexander Stepanov's Standard Template Library, with a few additions.
Serialize data to ubyte arrays.
std.parallelism implements high-level primitives for SMP parallelism. These include parallel foreach, parallel reduce, parallel eager map, pipelining and future/promise parallelism. std.parallelism is recommended when the same operation is to be executed in parallel on different data, or when a function is to be executed in a background thread and its result returned to a well-defined main thread. For communication between arbitrary threads, see std.concurrency.
This module is used to manipulate path strings.
Functions for starting and interacting with other processes, and for working with the current process' execution environment.
Facilities for random number generation.
This module defines the notion of a range. Ranges generalize the concept of arrays, lists, or anything that involves sequential access. This abstraction enables the same set of algorithms (see std.algorithm) to be used with a vast variety of different concrete types. For example, a linear search algorithm such as std.algorithm.searching.find works not just for arrays, but for linked-lists, input files, incoming network data, etc.
Regular expressions are a commonly used method of pattern matching on strings, with regex being a catchy word for a pattern in this domain specific language. Typical problems usually solved by regular expressions include validation of user input and the ubiquitous find & replace in text processing utilities.
Signals and Slots are an implementation of the Observer Pattern. Essentially, when a Signal is emitted, a list of connected Observers (called slots) are called.
D constrains integral types to specific sizes. But efficiency of different sizes varies from machine to machine, pointer sizes vary, and the maximum integer size varies. <b>stdint</b> offers a portable way of trading off size vs efficiency, in a manner compatible with the <tt>stdint.h</tt> definitions in C.
|File handles||__popen File isFileHandle openNetwork stderr stdin stdout|
|Reading||chunks lines readf readln|
|Writing||toFile write writef writefln writeln|
|Misc||KeepTerminator LockType StdioException|
String handling functions.
SumType is a generic discriminated union implementation that uses design-by-introspection to generate safe and efficient code. Its features include:
Information about the target operating system, environment, and CPU.
Templates which extract information about types and symbols at compile time.
This module implements a variety of type constructors, i.e., templates that allow construction of new, useful general-purpose types.
This module was renamed to disambiguate the term tuple, use std.meta instead.
The std.uni module provides an implementation of fundamental Unicode algorithms and data structures. This doesn't include UTF encoding and decoding primitives, see std._utf.decode and std._utf.encode in std.utf for this functionality.
gen_uni is a tool to automatically generate source code for unicode data structures.
Encode and decode Uniform Resource Identifiers (URIs). URIs are used in internet transfer protocols. Valid URI characters consist of letters, digits, and the characters ;/?:@&=+$,-_.!~*'() Reserved URI characters are ;/?:@&=+$, Escape sequences consist of % followed by two hex digits.
Encode and decode UTF-8, UTF-16 and UTF-32 strings.
A UUID, or Universally unique identifier, is intended to uniquely identify information in a distributed environment without significant central coordination. It can be used to tag objects with very short lifetimes, or to reliably identify very persistent objects across a network.
This module implements a discriminated union type (a.k.a. tagged union, algebraic type). Such types are useful for type-uniform binary interfaces, interfacing with scripting languages, and comfortable exploratory programming.
Read and write data in the zip archive format.
Compress/decompress data using the zlib library.
import std; int len; const r = 6.iota .filter!(a => a % 2) // 1 3 5 .map!(a => a * 2) // 2 6 10 .tee!(_ => len++) .substitute(6, -6) // 2 -6 10 .sum .reverseArgs!format("Sum: %d"); assert(len == 3); assert(r == "Sum: 6");
import std; assert(10.iota.map!(a => pow(2, a)).sum == 1023);
Convenience file that allows to import entire Phobos in one import.