D1 and D2 differences

2011-04-19 Thread Mike Linford
How up to date is http://digitalmars.com/d/2.0/features2.html ? If it's old, what differences can people think of off the tops of their heads that are not listed?

Re: multiple return

2011-04-19 Thread Max Klyga
On 2011-04-20 01:35:46 +0300, %u said: I have function which have more than one return, and the code compile and run but it gives rong result -I guess-, so i use tuple but the compiler can't return tuple. how can I return values? why I can't return tuple? In D, tuple is not built in type, it

sin(float), cos(float)

2011-04-19 Thread bearophile
In the C standard library there are the sqrtf, cosf, sinf functions, that return a 32 bit float. In D std.math.sqrt returns a float if the input argument is float, but sin and cos return double even if their argument is float: import std.math: sqrt, sin, cos; void main() { float x = 1.0f;

Re: multiple return

2011-04-19 Thread bearophile
%u: > I have function which have more than one return, and the code compile and run > but it gives rong result -I guess-, so i use tuple but the compiler can't > return tuple. > > how can I return values? > why I can't return tuple? Currently in D there are two ways to return multiple values fro

multiple return

2011-04-19 Thread %u
I have function which have more than one return, and the code compile and run but it gives rong result -I guess-, so i use tuple but the compiler can't return tuple. how can I return values? why I can't return tuple?

Re: case statement allows for runtime values,

2011-04-19 Thread bearophile
Andrej Mitrovic: > Got it. Bug is reported. Good. > You can compare anything in an if statement, so why is switch more limited? switch has stronger requirements than a series of if statements and its uses such extra information to create assembly code that's more efficient than a series of i

Re: case statement allows for runtime values,

2011-04-19 Thread Jesse Phillips
Andrej Mitrovic Wrote: > Got it. Bug is reported. > > Btw, is there a specific reason why non-const values are not allowed? > > I mean, doesn't a switch statement like this: > switch(value) > { > case 1: > foo(); break; > case 2: > bar(); break; > default: > d

Re: case statement allows for runtime values,

2011-04-19 Thread Andrej Mitrovic
Got it. Bug is reported. Btw, is there a specific reason why non-const values are not allowed? I mean, doesn't a switch statement like this: switch(value) { case 1: foo(); break; case 2: bar(); break; default: doo(); } expand to: if (value == 1) foo(); el

Re: case statement allows for runtime values,

2011-04-19 Thread Jesse Phillips
Andrej Mitrovic Wrote: > On 4/19/11, Jesse Phillips wrote: > > Yes bug. Not this part though > > > >> switch (x = foo(y)) > > > > Yeah that I know. > > Do you happen to know if this bug is already filed or should I file it? I would not know. As long as you do a best guess search on what yo

Re: case statement allows for runtime values, a case of accepts-invalid?

2011-04-19 Thread Andrej Mitrovic
*I've searched bugzilla and couldn't find an entry for this particular case.

Re: case statement allows for runtime values, a case of accepts-invalid?

2011-04-19 Thread Andrej Mitrovic
On 4/19/11, Jesse Phillips wrote: > Yes bug. Not this part though > >> switch (x = foo(y)) > Yeah that I know. Do you happen to know if this bug is already filed or should I file it?

Re: case statement allows for runtime values, a case of accepts-invalid?

2011-04-19 Thread Jesse Phillips
Andrej Mitrovic Wrote: > int foo(ref int y) > { > y = 5; > return y; > } > > void main() > { > int x = 1; > int y = 2; > > switch (x = foo(y)) > { > case y: > writeln("x == y"); > default: > } > > assert(x == 5); > assert(y

Re: Custom compare function for array.sort on an integer array?

2011-04-19 Thread Sequ
> If your are talking about D2, then use std.algorithm sort > Like taken from docs below: > > bool myComp(int x,int y) {return x> y; } > sort!(myComp)(array); > > > See also: > http://www.digitalmars.com/d/2.0/phobos/std_algorithm.html#sort > > -- > Dmitry Olshansky Ah, yes, thanks; that looks

Re: Custom compare function for array.sort on an integer array?

2011-04-19 Thread Dmitry Olshansky
On 19.04.2011 16:56, Dmitry Olshansky wrote: If you are talking use std.algorithm sort Should be: "If your are talking about D2, then use std.algorithm sort ", ouch :) -- Dmitry Olshansky

Re: Custom compare function for array.sort on an integer array?

2011-04-19 Thread Dmitry Olshansky
On 19.04.2011 16:57, Sequ wrote: Like the topic says, is it possible to set a custom compare function, for when you are using the 'sort' property of an integer array? I want the integers to be sorted by a different criteria than their natural order. From the documentation (http://d-programming-la

Custom compare function for array.sort on an integer array?

2011-04-19 Thread Sequ
Like the topic says, is it possible to set a custom compare function, for when you are using the 'sort' property of an integer array? I want the integers to be sorted by a different criteria than their natural order. From the documentation (http://d-programming-language.org/arrays.html) I can see h

case statement allows for runtime values, a case of accepts-invalid?

2011-04-19 Thread Andrej Mitrovic
int foo(ref int y) { y = 5; return y; } void main() { int x = 1; int y = 2; switch (x = foo(y)) { case y: writeln("x == y"); default: } assert(x == 5); assert(y == 5); } According to the docs: The case expressions must all