www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 12365] New: Assigning 1D array to 2D array should require cast

reply d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=12365

           Summary: Assigning 1D array to 2D array should require cast
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: growlercab gmail.com



The code in Ex.1 compiles and runs fine but I think it needs a cast:
---
// Ex.1
void main()
{
    int[] a=[1,2,3,4];
    int[2][2] b = a;
}
---


Array assignment in Ex.2 only works with a cast:
---
// Ex.2
void main()
{
    int[] a=[1,2,3,4];
    int[2][2] b;

    b = a; // Compile time error

    cast(int[4])b = a; // works ok
}
---

I think it should be consistent, preferably with a cast.


Thanks,
ed

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 14 2014
parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=12365




I'm not sure how to do the cast on initialisation though:
---
// Ex.1
void main()
{
    int[] a=[1,2,3,4];
    int[2][2] b = a;
}
---

Would it be:
    int[2][2] b = cast(int[2][2])a;

but it does not match the existing casts required for assignment:    

    cast(int[4])b = a;

Maybe just disallow code as per Ex.1 and only allow the cast assignment from
Ex.2?


Thanks,
ed

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