Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
April 18, 2015 std.array.split - Template instantiating error | ||||
---|---|---|---|---|
| ||||
Hi, I've the following source: import std.array : split; import std.stdio : writeln; void main() { string myString = "Hello World"; string[] splitted = myString.split(" "); } But when I compile the code above, I'm getting the following error: Error: template instance std.array.split!(string, string) error instantiating. I'm using the latest version of dmd (2.067.0), but I cannot figure out what I'm doing wrong :(. How to solve the problem? Thanks in advance! |
April 18, 2015 Re: std.array.split - Template instantiating error | ||||
---|---|---|---|---|
| ||||
Posted in reply to nrgyzer | On 18/04/2015 8:08 p.m., nrgyzer wrote:
> Hi,
>
> I've the following source:
>
> import std.array : split;
> import std.stdio : writeln;
>
> void main()
> {
> string myString = "Hello World";
> string[] splitted = myString.split(" ");
> }
>
> But when I compile the code above, I'm getting the following error:
>
> Error: template instance std.array.split!(string, string) error
> instantiating.
>
> I'm using the latest version of dmd (2.067.0), but I cannot figure out
> what I'm doing wrong :(. How to solve the problem?
>
> Thanks in advance!
alias immutable(char)[] string;
T[] split(T, U=typeof(T.init[0]))(T from, U sep)
Aka try changing " " to ' '.
|
April 18, 2015 Re: std.array.split - Template instantiating error | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rikki Cattermole | On Saturday, 18 April 2015 at 08:13:00 UTC, Rikki Cattermole wrote:
> On 18/04/2015 8:08 p.m., nrgyzer wrote:
>> Hi,
>>
>> I've the following source:
>>
>> import std.array : split;
>> import std.stdio : writeln;
>>
>> void main()
>> {
>> string myString = "Hello World";
>> string[] splitted = myString.split(" ");
>> }
>>
>> But when I compile the code above, I'm getting the following error:
>>
>> Error: template instance std.array.split!(string, string) error
>> instantiating.
>>
>> I'm using the latest version of dmd (2.067.0), but I cannot figure out
>> what I'm doing wrong :(. How to solve the problem?
>>
>> Thanks in advance!
>
> alias immutable(char)[] string;
>
> T[] split(T, U=typeof(T.init[0]))(T from, U sep)
>
> Aka try changing " " to ' '.
I already tried to change the separator from string (" ") to char (' ') . I'm getting the same result:
array.d(1510): Error not a property splitter(range, sep).array
sample.d(6): Error template instance std.array.split!(string, char) error instantiating
|
April 18, 2015 Re: std.array.split - Template instantiating error | ||||
---|---|---|---|---|
| ||||
Posted in reply to nrgyzer | On Saturday, 18 April 2015 at 08:08:41 UTC, nrgyzer wrote:
> Hi,
>
> I've the following source:
>
> import std.array : split;
> import std.stdio : writeln;
>
> void main()
> {
> string myString = "Hello World";
> string[] splitted = myString.split(" ");
> }
>
> But when I compile the code above, I'm getting the following error:
>
> Error: template instance std.array.split!(string, string) error instantiating.
>
> I'm using the latest version of dmd (2.067.0), but I cannot figure out what I'm doing wrong :(. How to solve the problem?
>
> Thanks in advance!
Works for me with DMD 2.067.0 on OSX:
["Hello", "World"]
|
April 18, 2015 Re: std.array.split - Template instantiating error | ||||
---|---|---|---|---|
| ||||
Posted in reply to nrgyzer | On 4/18/15 4:18 AM, nrgyzer wrote:
>
> array.d(1510): Error not a property splitter(range, sep).array
> sample.d(6): Error template instance std.array.split!(string, char)
> error instantiating
Are you using -property switch? Looks like std.array does not obey property switch requirements. I confirm that compiling with -property fails, while compiling without -property works. We really need to fix this, and by fix, I mean fix -property so it allows calling 0-arg functions without parentheses that aren't marked with @property.
-Steve
|
April 18, 2015 Re: std.array.split - Template instantiating error | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | On Saturday, 18 April 2015 at 13:00:59 UTC, Steven Schveighoffer wrote:
> On 4/18/15 4:18 AM, nrgyzer wrote:
>
>>
>> array.d(1510): Error not a property splitter(range, sep).array
>> sample.d(6): Error template instance std.array.split!(string, char)
>> error instantiating
>
> Are you using -property switch? Looks like std.array does not obey property switch requirements. I confirm that compiling with -property fails, while compiling without -property works. We really need to fix this, and by fix, I mean fix -property so it allows calling 0-arg functions without parentheses that aren't marked with @property.
>
> -Steve
Yeeeeees... Removing the -property switch solved the problem, thanks :)
|
Copyright © 1999-2021 by the D Language Foundation