passing non-dynamic arrays to variadic functions

ketmar via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Oct 26 17:25:50 PDT 2014


Hello.

let's assume we have this code:

  void doWrite(A...) (A args) {
    import std.stdio;
    import std.conv;
    writeln(to!string(args[0]));
  }

  void main () {
    char[3] a0 = "abc";
    char[3] a1 = ['a', 'b', 'c'];
    doWrite(a0);
    doWrite(a1);
  }

i don't know why, but this code prints complete garbage each time i run
it. yet if i'll change `doWrite()` invocations to this:

    doWrite(a0[]);
    doWrite(a1[]);

everything is working fine.

am i doing something wrong in the first sample and missed the relevat
part of documentation, or this is a bug? and do we have workaround for
this?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20141027/eb05d528/attachment.sig>


More information about the Digitalmars-d-learn mailing list