On Fri, Feb 09, 2018 at 03:05:33PM +0000, Ralph Doncaster via 
Digitalmars-d-learn wrote:
> This seems odd to me.  Is there a way I can make a function that takes
> an array of any type but only of a specific size in bytes?
> 
> void.d(8): Error: function void.foo (void[12] arr) is not callable
> using argument types (uint[3])
> Failed: ["/usr/bin/dmd", "-v", "-o-", "void.d", "-I."]
> void foo(void [12] arr)
> {
> }
> 
> void main()
> {
>     uint[3] arr;
>     foo(arr);
> }

You probably didn't mean to pass a static array, because those are
passed by value and may entail unnecessary copying. (Though in this
case, if you're only expecting 12 bytes, that's not that big of a
difference.)

But in any case, probably something like this would do:

        void foo(void[] arr)
        in { assert(arr.length == 12); }
        do {
                ...
        }


T

-- 
If creativity is stifled by rigid discipline, then it is not true creativity.

Reply via email to