Complexity nomenclature
BLM768 via Digitalmars-d
digitalmars-d at puremagic.com
Fri Dec 4 12:27:06 PST 2015
On Friday, 4 December 2015 at 18:21:41 UTC, Walter Bright wrote:
> I suggested in the pseudo namespaces thread using template
> parameters to express characteristics, as in:
>
> remove!(stable, linear)
>
> with sensible defaults so most of the time the user would just
> use:
>
> remove
The nice thing about this is that it can be easy to specify which
complexities an operation supports.
---
void remove(complexity, T)(List!T list, size_t index)
if(complexity >=
Complexity.linear); //or however complexity objects work...
List l;
//...
l.remove(3);
l.remove!(Complexity.polynomial(2))(3);
l.remove!(Complexity.constant)(3);//fails; there's no template
specialization for this case because complex < linear.
More information about the Digitalmars-d
mailing list