Thread overview | ||||||
---|---|---|---|---|---|---|
|
March 09, 2017 @safe console input? | ||||
---|---|---|---|---|
| ||||
I was surprised by a compiler message saying that std.stdio.readln() (and specifically the overload without arguments) is not safe but @system. Actually I was using it only to pause execution until the user presses Enter. So how else could I do this within a @safe environment? And more generally, is it possible to get user console input in a @safe way? |
March 09, 2017 Re: @safe console input? | ||||
---|---|---|---|---|
| ||||
Posted in reply to XavierAP | On Thursday, 9 March 2017 at 22:53:59 UTC, XavierAP wrote:
> And more generally, is it possible to get user console input in a @safe way?
Just wrap it in a @trusted function.
|
March 10, 2017 Re: @safe console input? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On Thursday, 9 March 2017 at 23:55:35 UTC, Adam D. Ruppe wrote:
> Just wrap it in a @trusted function.
I knew this answer already of course ;) but I take it as implying that there is no other way.
Actually I really wonder why std.stdio.readln() itself is not flagged @trusted. I wouldn't think such a function skips any buffer bounds checking, even in -release -- having to wait for user input anyway performance is no issue.
|
March 10, 2017 Re: @safe console input? | ||||
---|---|---|---|---|
| ||||
Posted in reply to XavierAP | On Friday, 10 March 2017 at 00:42:35 UTC, XavierAP wrote:
> On Thursday, 9 March 2017 at 23:55:35 UTC, Adam D. Ruppe wrote:
>> Just wrap it in a @trusted function.
>
> I knew this answer already of course ;) but I take it as implying that there is no other way.
>
> Actually I really wonder why std.stdio.readln() itself is not flagged @trusted. I wouldn't think such a function skips any buffer bounds checking, even in -release -- having to wait for user input anyway performance is no issue.
Its use of __gshared. Making it shared is non trivial.
|
Copyright © 1999-2021 by the D Language Foundation