no.
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.
unstd.traits.staticArrayDims
unstd.traits.MultidimStaticArrayElementType
unstd.traits.multidimStaticArrayElementCount
unstd.traits.multidimStaticArrayLengths
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.MultidimArray
unstd.multidimarray.multidimArray
no.
unstd.multidimarray module adds ability to slice multidimensional rectangular arrays and ranges to iterate slices.
unstd.generictuple.GenericTuple
unstd.generictuple.TypeTuple
unstd.generictuple.expressionTuple
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.
unstd.generictuple.PackedGenericTuple
unstd.generictuple.PackedTypeTuple
unstd.generictuple.packedExpressionTuple
unstd.traits.isPackedTuple
no.
Useful when passing more than one generic tuple to a template.
unstd.generictuple.RetroTuple
unstd.generictuple.StrideTuple
unstd.generictuple.ChainTuple
unstd.generictuple.RoundRobinTuple
unstd.generictuple.RadialTuple
unstd.generictuple.RepeatTuple
unstd.generictuple.ZipTuple
unstd.generictuple.iotaTuple
unstd.generictuple.IndexedTuple
unstd.generictuple.ChunksTuple
no.
Templates for generic tuple creation by analogy with range creation functions from std.range.
unstd.generictuple.cmpTuple
unstd.generictuple.equalTuple
unstd.generictuple.FilterTuple
unstd.generictuple.groupTuple
unstd.generictuple.JoinTuple
unstd.generictuple.MapTuple
unstd.generictuple.ReduceTuple
unstd.generictuple.UniqTuple
no.
Templates for various algorithms on generic tuples by analogy with range algorithm functions from std.algorithm.
no.
Creates a set of flags for which any non-flag operations ar prohibited.
unstd.math.isPowerOf2
unstd.math.roundDownToPowerOf2
unstd.math.roundUpToPowerOf2
unstd.math.log2RoundedDown
unstd.math.log2RoundedUp
unstd.math.alignDown
unstd.math.alignUp
no.
It is just too commonly needed to not include it in a standard library forsing almost everybody to spend time writing such functions.
no.
A convenience util to instantiate templates needed because of D syntax issues.
unstd.templates.Template
unstd.templates.UnaryTemplate
unstd.templates.BinaryTemplate
unstd.templates.unaryPred
unstd.templates.binaryPred
no.
A stuff for creating templates from strings.
unstd.templates.BindTemplate
unstd.templates.Bind
no.
A stuff for binding templates arguments.
unstd.templates.notTemplate
unstd.templates.andTemplates
unstd.templates.orTemplates
no.
A stuff for combining template predicates.
unstd.lifetime.finalizeClassInstance
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.
unstd.lifetime.setToInitialState
unstd.lifetime.setElementsToInitialState
unstd.lifetime.callPostblits
unstd.lifetime.callDestructors
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.
no.
This function is fast and CTFE-able and is a preffered way over C's memcpy and memmove.
unstd.lifetime.move
unstd.lifetime.forward
Phobos pull 923 (open)
Added move is a fixed and improved analog of std.algorithm.move. Added forward is just a copy of std.algorithm.forward implementation except it uses fixed move.
unstd.lifetime.constructFrom
unstd.lifetime.constructFromLiteral
Ideas of these functions are used in std.conv.emplace fix from Phobos pull 949 (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.
unstd.lifetime.initializeClassInstance
no.
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.