On Thursday, 23 April 2015 at 10:06:45 UTC, John Colvin wrote:
On Thursday, 23 April 2015 at 09:48:21 UTC, Dennis Ritchie wrote:
Hi,
Why the program can not return different types of data from the conditional operator?

-----
import std.stdio;

auto foo() {

        if (true) {
                return 0;
        } else
                return "true";
}

void main() {

        writeln(foo);
}

import std.variant, std.stdio;

auto foo()
{
        if (true)
                return Variant(0);
        else
                return Variant("Hello");
}

void main()
{
        foo.writeln;
}

If 'true' is known at compile time, it works:

auto foo() {

        static if (true) {
                return 0;
        } else
                return "true";
}

Reply via email to