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 = &baz;
        
        writeln(foo_bar(1, 2));
}

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).

auto foo(T)(T f)
{
        static if (is(T == fp2))
        {
                return f;
        }
        else static if (is(T == fp1))
        {
                int function(int x, int y) f_ = f;
                return f_;
        }
        else
        {
                return 0;
        }
}

Reply via email to