digitalmars.D.learn - Cast a 2d static array to a 1d static array. T[s][r] -> T[s*r]
- Jonathan (6/6) Feb 27 2018 Is it possible to cast a 2d static length array to a 1d static
- Jonathan (5/11) Feb 27 2018 *( [pos,size].ptr .cst!(void*) .cst!(int[4]*) )
- TheFlyingFiddle (3/16) Feb 27 2018 This should work
Is it possible to cast a 2d static length array to a 1d static length array? E.g. int[2][2] a = [[1,2],[3,4]]; int[4] b = cast(int[4])a; Is not the byte data in memory exactly the same?
Feb 27 2018
On Tuesday, 27 February 2018 at 22:13:05 UTC, Jonathan wrote:Is it possible to cast a 2d static length array to a 1d static length array? E.g. int[2][2] a = [[1,2],[3,4]]; int[4] b = cast(int[4])a; Is not the byte data in memory exactly the same?*( [pos,size].ptr .cst!(void*) .cst!(int[4]*) ) (using dub `cst` library) or *( cast(int[4]*)(cast(void*)([pos,size].ptr)) ) Okay, this works but is this the best way?!
Feb 27 2018
On Tuesday, 27 February 2018 at 22:17:25 UTC, Jonathan wrote:On Tuesday, 27 February 2018 at 22:13:05 UTC, Jonathan wrote:This should work int[4] b = *(cast(int[4]*)a.ptr);Is it possible to cast a 2d static length array to a 1d static length array? E.g. int[2][2] a = [[1,2],[3,4]]; int[4] b = cast(int[4])a; Is not the byte data in memory exactly the same?*( [pos,size].ptr .cst!(void*) .cst!(int[4]*) ) (using dub `cst` library) or *( cast(int[4]*)(cast(void*)([pos,size].ptr)) ) Okay, this works but is this the best way?!
Feb 27 2018