Useful for serialization algorithms which need to know all composing types.
Phobos pull 776, closed by Andrei Alexandrescu
A convenient template to retrieve array element type for template programming purposes. Phobos's std.range.ElementEncodingType should be used only if array is treated as a range, otherwise it reduces templated code readability and looks inconsistent because many templates are from "differen world" and don't have to know anything about ranges.
Partially (except multidimStaticArrayLengths) in Phobos pull 924 (open).
These templates are needed for analysing multidimensional static arrays.
Phobos pull 952 (open)
asFlatStaticArray adds an ability to view any abject as a single-dimensional static array which is very useful for template code as it eliminates error-prone need to create branches and recursion for static-arrays support.
unstd.multidimarray module adds ability to slice multidimensional rectangular arrays and ranges to iterate slices.
Phobos pull 780 (open).
There should be at least both GenericTuple and TypeTuple as the latter is a common usecase of generic tuples. E.g. TypeTuple is used ~70% of generic tuple usage in Phobos.
Useful when passing more than one generic tuple to a template.
Templates for generic tuple creation by analogy with range creation functions from std.range.
Templates for various algorithms on generic tuples by analogy with range algorithm functions from std.algorithm.
Creates a set of flags for which any non-flag operations ar prohibited.
It is just too commonly needed to not include it in a standard library forsing almost everybody to spend time writing such functions.
A convenience util to instantiate templates needed because of D syntax issues.
A stuff for creating templates from strings.
A stuff for binding templates arguments.
A stuff for combining template predicates.
Druntime pull 344, closed by Andrei Alexandrescu
finalizeClassInstance accepts anly a class or an interface as against tricky (IMO needless, error-prone, and inconsistent) Druntime's destroy.
Phobos pull 928 (open)
Use these functions instead of dealing with tricky typeid(T).
Phobos pull 929, closed by Andrei Alexandrescu
A function for object destruction which do exactly the same a compiler do in a case an object goes out of scope.
This function is fast and CTFE-able and is a preffered way over C's memcpy and memmove.
Phobos pull 923 (open)
A functions for object construction which do exactly the same a compiler do initializing an object like T t = arg; or auto s = S(args); if S is a struct type.
A functions for class instance initialization which do exactly the same a compiler do initializing an object like auto c = new C(args); if C is a class type except given memory is used instead of allocating.