digitalmars.D.learn - inline trusted code
Hello,
Several times I faced with next problem: I have " safe" routine
with few calls to system functions inside: OS calls (recv, send,
kqueue) os some phobos unsafe functions like assumeUnique. I'd
like not to wrap these system functions in trusted wrappers,
but somehow mark these calls trusted inline.
In ideal case this should look like
import std.exception;
void main() safe
{
ubyte[] a;
trusted {
auto b = assumeUnique(a);
};
}
But the closest variant is
import std.exception;
void main() safe
{
ubyte[] a;
delegate void() trusted {
auto b = assumeUnique(a);
}();
}
Which looks a bit verbose.
How do you solve this problem?
Thanks!
Jan 30 2018
On Tuesday, 30 January 2018 at 15:05:38 UTC, ikod wrote:
Hello,
Several times I faced with next problem: I have " safe" routine
with few calls to system functions inside: OS calls (recv,
send, kqueue) os some phobos unsafe functions like
assumeUnique. I'd like not to wrap these system functions in
trusted wrappers, but somehow mark these calls trusted inline.
In ideal case this should look like
import std.exception;
void main() safe
{
ubyte[] a;
trusted {
auto b = assumeUnique(a);
};
}
But the closest variant is
import std.exception;
void main() safe
{
ubyte[] a;
delegate void() trusted {
auto b = assumeUnique(a);
}();
}
Which looks a bit verbose.
How do you solve this problem?
Thanks!
ubyte[] a;
auto b = (() trusted => assumeUnique(a))();
Jan 30 2018








kinke <kinke libero.it>