What does "(this This)" mean in member function templates?
rikki cattermole
rikki at cattermole.co.nz
Mon Feb 12 08:42:42 UTC 2018
On 12/02/2018 8:35 AM, Nathan S. wrote:
> For example in std.container.rbtree:
>
> ---
> auto equalRange(this This)(Elem e)
> {
> auto beg = _firstGreaterEqual(e);
> alias RangeType = RBRange!(typeof(beg));
> if (beg is _end || _less(e, beg.value))
> // no values are equal
> return RangeType(beg, beg);
> static if (allowDuplicates)
> {
> return RangeType(beg, _firstGreater(e));
> }
> else
> {
> // no sense in doing a full search, no duplicates are allowed,
> // so we just get the next node.
> return RangeType(beg, beg.next);
> }
> }
> ---
https://dlang.org/spec/template.html#TemplateThisParameter
More information about the Digitalmars-d-learn
mailing list