Thread overview | |||||
---|---|---|---|---|---|
|
September 07, 2020 Why is there no throws, @gc, impure, mutable ? | ||||
---|---|---|---|---|
| ||||
It's easy to declare the entire module @safe and functions which can't be can be declared @system. However there is const, immutable, pure, @nogc and nothrow but no mutable, impure, @gc and throws. Why is that ? |
September 07, 2020 Re: Why is there no throws, @gc, impure, mutable ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to wjoe | On Monday, 7 September 2020 at 11:25:15 UTC, wjoe wrote: > It's easy to declare the entire module @safe and functions which can't be can be declared @system. > However there is const, immutable, pure, @nogc and nothrow but no mutable, impure, @gc and throws. > > Why is that ? Mostly because nobody's bothered to add them (yet). There's an accepted proposal to add a "throw" attribute as the opposite of nothrow [1], but it looks like it still hasn't been implemented in the compiler. For const and immutable, you can use std.traits.Unconst [2] to remove them in most cases. [1] https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1029.md [2] http://dpldocs.info/experimental-docs/std.traits.Unconst.html |
September 07, 2020 Re: Why is there no throws, @gc, impure, mutable ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Paul Backus | On Monday, 7 September 2020 at 11:44:40 UTC, Paul Backus wrote:
> On Monday, 7 September 2020 at 11:25:15 UTC, wjoe wrote:
>> It's easy to declare the entire module @safe and functions which can't be can be declared @system.
>> However there is const, immutable, pure, @nogc and nothrow but no mutable, impure, @gc and throws.
>>
>> Why is that ?
>
> Mostly because nobody's bothered to add them (yet). There's an accepted proposal to add a "throw" attribute as the opposite of nothrow [1], but it looks like it still hasn't been implemented in the compiler.
>
> For const and immutable, you can use std.traits.Unconst [2] to remove them in most cases.
>
> [1] https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1029.md
> [2] http://dpldocs.info/experimental-docs/std.traits.Unconst.html
Very interesting. Thanks.
|
Copyright © 1999-2021 by the D Language Foundation