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.