Named method and struct literal arguments
Method binding - using alias inference patch
Method binding - before alias inference
Compiler capability detection
* ae.utils.meta.chain * * License: * This Source Code Form is subject to the terms of * the Mozilla Public License, v. 2.0. If a copy of * the MPL was not distributed with this file, You * can obtain one at http://mozilla.org/MPL/2.0/. * * Authors: * Vladimir Panteleev <firstname.lastname@example.org> */ /// Chains are a concept a bit like ranges, /// but which operate on heterogenous types /// (e.g. a tuple of values). /// Composition is done by a chain of functors. /// To allow state, each functor can be represented /// as a struct. /// Functors return a bool (true if iteration should /// stop, false if it should continue)
Reference type abstraction
An implementation of Timon Gehr's X template
Expand to a built-in numeric type of the same kind (signed integer / unsigned integer / floating-point) with at least additionalBits more bits of precision.
Shorter synonym for std.traits.Identity. Can be used to UFCS-chain static methods and nested functions.
Returns the class's initializer instance. Returns null if all class fields are zero. Can be used to get the value of class fields' initial values.
Like progn, but return the first argument instead.
Evaluate all arguments and return the last argument. Can be used instead of the comma operator. Inspired by http://clhs.lisp.se/Body/s_progn.htm
Were we built with -debug?
Like std.typecons.Tuple, but a template mixin. Unlike std.typecons.Tuple, names may not be omitted - but repeating types may be.
Generate constructors that simply call the parent class constructors. Based on http://email@example.com
A range that iterates over all members of an enum.
Return true if all of T's fields are the same type.
Generate a @property function which creates/returns a thread-local singleton of a class with the given arguments.
Evaluates to array of strings with name for each field.
Returns the index of fun's parameter with the name matching "names", or asserts if the parameter is not found. "names" can contain multiple names separated by slashes.
Expand an array to a tuple. The array value must be known during compilation.
Return something to foreach over optimally. If A is known at compile-time, return a tuple, so the foreach is unrolled at compile-time. Otherwise, return A for a regular runtime foreach.
Generate a tuple containing integers from 0 to N-1. Useful for static loop unrolling. (staticIota)
Expand to a built-in numeric type of the same kind (signed integer / unsigned integer / floating-point) with at least the indicated number of bits of precision.
Like ExpandNumericType, but do not error if the resulting type is too large to fit any native D type - just expand to the largest type of the same kind instead.
Unsigned integer type big enough to fit N bits of precision.
Same as TypeTuple, but meant to be used with values.
One past the biggest element of the enum T.
Expand a static array to a tuple. Unlike ArrayToTuple, the array may be a runtime variable.
Create a functor value type (bound struct) from an alias.
Detects types and values of the given type
Is a specific version on?
Generates a function which passes its arguments to a struct, which is returned. Preserves field names (as parameter names) and default values.
Get f's ancestor which represents its "this" pointer. Skips template and mixin ancestors until it finds a struct or class.
Return the number of bits used to store the value part, i.e. T.sizeof*8 for integer parts and the mantissa size for floating-point types.