www.digitalmars.com         C & C++   DMDScript  

D.gnu - Remove elements from char[] throws error

reply Mark Lagodych <lgd.mrk gmail.com> writes:
Consider this small program:


import std.stdio;
import std.algorithm;

void main() {
     char[] a = ['a', 'b', 'c', 'd', 'e'];
     writeln(remove(a, 1, 3));
}


DMD compiles this fine. But GDC throws the following error:

error: no overload matches for remove
      writeln(remove(a, 1, 3));
                    ^

Though calling 'remove' with int[] works just fine.

I am new to D (but not to programming in general). Is it a GDC 
bug? If not, how to avoid this error?
Mar 01 2021
parent reply Adam D. Ruppe <destructionator gmail.com> writes:
On Monday, 1 March 2021 at 17:05:18 UTC, Mark Lagodych wrote:
 DMD compiles this fine. But GDC throws the following error:
gdc bundles an older version of the std library, so that particular overload was probably added more recently. You could possibly `cast(ubyte[]) a` in there to select a different overload.
Mar 01 2021
parent Mark Lagodych <lgd.mrk gmail.com> writes:
On Monday, 1 March 2021 at 17:16:11 UTC, Adam D. Ruppe wrote:
 On Monday, 1 March 2021 at 17:05:18 UTC, Mark Lagodych wrote:
 DMD compiles this fine. But GDC throws the following error:
gdc bundles an older version of the std library, so that particular overload was probably added more recently. You could possibly `cast(ubyte[]) a` in there to select a different overload.
Got it! Thanks
Mar 01 2021