Discussion about deprecating @nogc and workarounds
Richard (Rikki) Andrew Cattermole
richard at cattermole.co.nz
Sat Sep 7 13:28:39 UTC 2024
On 08/09/2024 1:06 AM, Lance Bachmeier wrote:
> On Saturday, 7 September 2024 at 08:05:10 UTC, Kapendev wrote:
>
>> BetterC is weird, but it does do something. If `@nogc` were to be
>> removed, BetterC could act as a replacement for those who want to
>> avoid using the gc and enforce that at compile time.
>
> How do you replace this code with BetterC? Answer: You don't.
>
> ```
> import std;
> void main() {
> writeln(add(3, 4));
> }
> @nogc int add(int x, int y) { return x+y; }
> ```
>
> The use cases of @nogc and BetterC are very different. With BetterC you
> lose classes, dynamic arrays, and associative arrays, among other things.
Just because you lose access to almost all of druntime and phobos does
not mean you cannot replace almost everything.
```d
module app;
import sidero.base.console;
@safe nothrow @nogc:
void main() {
writeln(add(3, 4)); // 7
}
int add(int x, int y) {
return x + y;
}
```
So far the only thing I haven't been able to find a solution for when
needed is exceptions in terms of niceness.
More information about the Digitalmars-d
mailing list