Just some minor details:
* Adding void [front|back](T value) for DList and DList.Range.
* A few missing ddocs in both.
* A few missing enforcement checks.
We *may* want to change some of the enforce into asserts, but right now, there was nothing, and it was inconsistent.
Initially fixes 8332 and 8333
Added some opIndexUnary to both Array and Array.Range
Gave Array.Range opSliceUnary and opSliceOpAssign to do "range wide operation" aka:
r+=5 or ++r
Also moved a _few_ methods around for logical grouping. Bit of comment editing for consistency.
This enables the test suite to build with the -property switch enabled.
std.cpuid: vendor()/processor() have not been converted to properties in accordance to core.cpuid.
std.xml: Element.text() cannot be a property due to the optional parameter.
* Made emplace faster and replaced calls to it to also make them faster.
* Replaced phobos.d in posix.mak with index.d.
* Added version=StdDdoc to documentation build in posix.mak, and replaced uses of D_Ddoc with it.
* Improved documentation target in posix.mak (target dir automatically created).
* Added nice documentation table and cheat sheet at the top of std.algorithm.
* Replaced a few helper structs in std.range and std.algorithm with local structs, which simplify matters a fair amount.
* Added more constraints to functions in std.algorithm (still work in progress).
* Improved error message in std.algorithm.sort in case of failure to sort.
* std.random.dice(1, 10) now works (no need for array notation std.random.dice([1, 10])).
* Fixed documentation bugs and insufficiencies in std.range (still more to do).
* Improved speed of walkLength.
* Simplified retro.
* Simplified and optimized stride. Also folded stride(stride(r, a), b) into stride(r, a * b).
* Added roundRobin to std.range, which as a perk simplified radial.
* Added takeOne and takeNone to std.range.
* Added unsigned to std.traits.
I think that I took all of the suggestions into account, so it should be
improved per those suggestions. I also beefed up the unit tests a bit in
order to take different less and allowDuplicate values into account
(previously, it was only testing the defaults for those template
parameters).
1. It's now a class. The only constructor is now the default
constructor (since templatizing the constructors does not appear to
currently work).
2. It now has a helper function - redBlackTree - for creating it.
3. It now has a length property.
4. It now has a version of remove which takes a Take!Range.
5. It now has removeKey to allow you to remove one or more elements by value from it.