On Fri, 25 Apr 2014 07:52:42 -0400, Nick Treleaven
<[email protected]> wrote:
On 25/04/2014 08:29, Matthias Walter via Digitalmars-d wrote:
size_t find(T[] Array,T Element)
> {
find returns a size_t being a nonnegativ number.
> return -1;
But here it returns -1.
For size_t and uint 'dmd -w' seems to allow returning literal -1, but
with ubyte I get:
Error: cannot implicitly convert expression (-1) of type int to ubyte
Is this inconsistent or is there a reason for this?
It is inconsistent, but it's well known legacy based on C rules.
See Integer promotion and arithmetic conversions here:
http://dlang.org/type
"Integer values cannot be implicitly converted to another type that cannot
represent the integer bit pattern after integral promotion."
-Steve