On Friday, 19 February 2016 at 22:34:48 UTC, Chris Wright wrote:
I tested this a fair bit today, and I haven't been able to do
any of the nefarious things I expected to be able to do. No
overwriting variables in the caller's scope, no smashing stack
pointers, etc.
I was surprised by this
On Fri, 19 Feb 2016 21:57:46 +, Yuxuan Shui wrote:
> I don't think it's safe to convert between function pointer with
> different number of arguments... It's possible to mess up the stack
> frame.
I tested this a fair bit today, and I haven't been able to do any of the
nefarious things I
On Friday, 19 February 2016 at 22:07:25 UTC, Chris Wright wrote:
If you want to cast function pointers successfully, you have to
know the D calling convention.
[snip]
I figured there was an explanation. Definitely "here be dragons"
territory. I hope I can figure out a better solution, but
On Fri, 19 Feb 2016 20:45:23 +, jmh530 wrote:
> I tried to use a cast (below) to modify the function pointer, but it is
> printing the second number instead of the first. I find this behavior
> strange...
If you want to cast function pointers successfully, you have to know the
D calling
On Friday, 19 February 2016 at 20:45:23 UTC, jmh530 wrote:
On Friday, 19 February 2016 at 15:00:51 UTC, jmh530 wrote:
This works.
But when I re-write foo to take that into account as in below,
I get an error that I can't implicitly convert int
function(int x) to int function(int x, int y).
On Friday, 19 February 2016 at 15:00:51 UTC, jmh530 wrote:
This works.
But when I re-write foo to take that into account as in below,
I get an error that I can't implicitly convert int function(int
x) to int function(int x, int y).
I don't think I had looked at what you had done carefully
On Friday, 19 February 2016 at 14:21:26 UTC, Kagamin wrote:
int bar(int x)
{
return x;
}
int baz(int x, int y)
{
return bar(x);
}
void main()
{
import std.stdio : writeln;
int function(int x, int y) foo_bar =
writeln(foo_bar(1, 2));
}
This
On Friday, 19 February 2016 at 11:26:56 UTC, Nicholas Wilson
wrote:
Like
alias fp1 = int function(int x);
alias fp2 = int function(int x, int y);
auto foo(T)(T f)
{
static if (is(T == fp2))
return f;
else static if (is(T == fp1))
{
On Friday, 19 February 2016 at 05:41:01 UTC, jmh530 wrote:
void main()
{
import std.stdio : writeln;
auto foo_bar = foo();
writeln(qux(1, 2, foo_bar)); //compiler error
writeln(qux(1, 2, ));
}
int bar(int x)
{
return x;
}
int baz(int x, int y)
On Friday, 19 February 2016 at 05:41:01 UTC, jmh530 wrote:
I'm trying to write a function that will adjust the parameters
of a function pointer.
I think the problem is that it defaults to a delegate not that it
cannot be one
does clarifying this to the compiler work
Like
alias fp1 = int
I'm trying to write a function that will adjust the parameters of
a function pointer.
In the code below, my goal is to call the function qux with a
variety of different function pointers (in the actual
application, I don't have the ability to modify qux). I created a
function foo that I
11 matches
Mail list logo