Re: contains method on immutable sorted array
On Monday, 21 October 2019 at 20:44:29 UTC, Nicholas Wilson wrote: works, so I guess contains doesn't work with immutable? If you can do some more research into this and confirm it then, please file a bug report. As I understand - yes. It doesn't work with immutable object. Also I see the same problem with 'const' and 'shared' object: shared values = sort(cast(wstring[])["й", "ц", "ук", "н"]); const values = sort(cast(wstring[])["й", "ц", "ук", "н"]); values.contains("ук"w).writeln; // error So you think it is a bug in compiler?
Re: contains method on immutable sorted array
On Monday, 21 October 2019 at 10:14:54 UTC, Andrey wrote: Hello, I have got a global constant immutable array: immutable globalvalues = sort(cast(wstring[])["й", "ц", "ук", "н"]); Somewhere in program I want to check an existance: globalvalues.contains("ук"w).writeln; But get an error: Error: template std.range.SortedRange!(wstring[], "a < b").SortedRange.contains cannot deduce function from argument types !()(wstring) immutable, candidates are: /dlang/ldc-1.17.0/bin/../import/std/range/package.d(10993): std.range.SortedRange!(wstring[], "a < b").SortedRange.contains(V)(V value) if (isRandomAccessRange!Range) Why I can't check? pragma(msg,typeof(globalvalues)); gives immutable(SortedRange!(wstring[], "a < b")) and (cast(SortedRange!(wstring[], "a < b"))globalvalues).contains("ук"w).writeln; works, so I guess contains doesn't work with immutable? If you can do some more research into this and confirm it then, please file a bug report.
contains method on immutable sorted array
Hello, I have got a global constant immutable array: immutable globalvalues = sort(cast(wstring[])["й", "ц", "ук", "н"]); Somewhere in program I want to check an existance: globalvalues.contains("ук"w).writeln; But get an error: Error: template std.range.SortedRange!(wstring[], "a < b").SortedRange.contains cannot deduce function from argument types !()(wstring) immutable, candidates are: /dlang/ldc-1.17.0/bin/../import/std/range/package.d(10993): std.range.SortedRange!(wstring[], "a < b").SortedRange.contains(V)(V value) if (isRandomAccessRange!Range) Why I can't check?