| Thread overview |
|---|
December 25, 2017 Tail-constness of class parameters | ||||
|---|---|---|---|---|
| ||||
In a graph library I'm working on I have the following algorithm
bool hasContext(Node sub, // TODO in
Node sup) nothrow // TODO in
{
Node curr = sub;
while (true)
{
Node ctx = curr.context;
if (!ctx) { break;}
if (ctx is sup)
return true;
else
curr = ctx;
}
return false;
}
When I qualify the parameters `sub`, `sup` and `curr` with const, the assignment
curr = ctx;
fails.
1. Is there a way to express tail-constness on the parameters without having to qualify this function with @trusted to enable an ugly const-cast to allow the assignment `curr = ctx` to compile?
2. An alternative solution is to make the function recursive. But will that be as efficient?
| ||||
December 25, 2017 Re: Tail-constness of class parameters | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | On Monday, 25 December 2017 at 14:49:11 UTC, Nordlöw wrote: > 1. Is there a way to express tail-constness on the parameters https://dlang.org/phobos/std_typecons.html#Rebindable | |||
December 25, 2017 Re: Tail-constness of class parameters | ||||
|---|---|---|---|---|
| ||||
Posted in reply to ag0aep6g | On Monday, 25 December 2017 at 15:16:55 UTC, ag0aep6g wrote:
> https://dlang.org/phobos/std_typecons.html#Rebindable
Thanks.
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply