[Issue 9112] Uniform construction for built-in types

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Mar 7 02:49:19 PST 2014


https://d.puremagic.com/issues/show_bug.cgi?id=9112



--- Comment #26 from bearophile_hugs at eml.cc 2014-03-07 02:49:15 PST ---
Is this difference expected?


auto identity1(T)(in size_t side) {
    auto m = new T[][](side);
    foreach (r, ref row; m) {
        row.length = side;
        foreach (c; 0 .. side)
            row[c] = cast(T)(r == c ? 1 : 0);
    }
    return m;
}
auto identity2(T)(in size_t side) {
    auto m = new T[][](side);
    foreach (r, ref row; m) {
        row.length = side;
        foreach (c; 0 .. side)
            row[c] = T(r == c ? 1 : 0);
    }
    return m;
}
void main() {
    import std.stdio;
    auto m1 = identity1!(int)(3); // OK
    m1.writeln;
    auto m2 = identity1!(creal)(3); // OK
    m2.writeln;
    auto m3 = identity2!(int)(3); // OK
    m3.writeln;
    auto m4 = identity2!(creal)(3); // Error
    m4.writeln;
}

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list