"David Medlock" <noone@nowhere.com> wrote in message news:dulc2p$7m4$1@digitaldaemon.com...> C-Junkie: "Well there is my old reliable if statement...wait a minute...whats all this then? This language is too weird, I am going back to my comfortable (language-X)."
Or they'll look at it and say, "oh, well that's cool, I've always been able to do that in for loops, now I can do it in ifs as well!"
And if they give up on a language because of one new feature, they don't deserve to be using it.

Walter Bright wrote:
> Changed on_scope keywords per the general consensus of the n.g.
> > The implicit function template instantiation is a bit limited at the moment, deduction won't work for types derived from templates, and the mechanism to pick the most specialized template doesn't work.
> > http://www.digitalmars.com/d/changelog.html> > >
Excellent fix to the scope statement. Thank you again, Walter. I like where this is headed. Keep up the good work. D is looking more attractive and exciting all the time.
-JJR

Walter Bright wrote:
> Changed on_scope keywords per the general consensus of the n.g.
nooooooooooooooooooooooooo... I guess I was the only one that didn't like the proposed change of scope(...). Inconsistencies in d drive me mad (crazy). I love the language and hate it at the same time.
The other changes are nice though, nice work.

"Georg Wrede" <georg.wrede@nospam.org> wrote in message news:440E29AA.1090408@nospam.org...> Jarrett Billingsley wrote:
>> "Georg Wrede" <georg.wrede@nospam.org> wrote in message news:440E1336.3050608@nospam.org...>>>>>BTW, what does "Implicit casts of non-bool to bool disallowed" mean?
>>>> It means you can no longer write
>>>> bool x = 5;
>> Shhhhhttt! Good-bye C/C++ folks!
>> It's not like anybody would want to write exactly
>> bool x = 5;
>> but more like
>> bool x = strcmp("foo", "bar");
> if (!x) { /* do stuff */ } // match
> else { /* call the cops! */ } // no match
>> which, incidentally, is one of the more profound proposititions in any C-derived language.
>> The Old School Boolean C Logic was a perfectly functioning Concept. This fact _alone_ was the reason "Bool" took so long to be "formally" introduced into either C or C++. No regular programmer ever needed Prude Bool, only the Superior Theoreticians Thought it Wise to force this upon the language. It was profoundly useful as-is, and didn't need any pimping. A language that purports to be "to-the-metal" just has to take into consideration the fundamentals of [digital] life. And processor physics. (Wanna abstract away that? Then go to Java or whatever.)
>> The other night [in the D newsgroup, when it was getting hilarious] it dawned to me, that quite [too] many of the vocatious NG-members never had read their Boolean IT Fundamentals.
>> Good Grief: "there's just too many instances in history where the illiterati have dictated the outcome of otherwise intellectual confrontations". Damn!!
>> The ramifications of this (minor looking) modification are grave, I'm afraid.
>> Now what happens to
>> if (stcmp("foo", "bar")) {}
>> ???
This has some merrit to it in my opinion; what's wrong with beeing able to cast an int to a bool; it allows the above stated functionality, but doesn't really present any harms that I can see.

Walter Bright wrote:
> Changed on_scope keywords per the general consensus of the n.g.
> > The implicit function template instantiation is a bit limited at the moment, deduction won't work for types derived from templates, and the mechanism to pick the most specialized template doesn't work.
> > http://www.digitalmars.com/d/changelog.html> > >
Great work, Walter!
I'll throw out more bizarre test cases to help you perfect dmd ;)

On Tue, 7 Mar 2006 21:02:11 -0500, Ameer Armaly wrote:
>>> Now what happens to
>>>> if (stcmp("foo", "bar")) {}
>>>> ???
> This has some merrit to it in my opinion; what's wrong with beeing able to cast an int to a bool; it allows the above stated functionality, but doesn't really present any harms that I can see.
You *can* cast an integer to a bool, but it must be explicit and no implicit.
bool x = cast(bool)42; // okay
bool x = 42; // not okay
--
Derek
(skype: derek.j.parnell)
Melbourne, Australia
"Down with mediocracy!"
8/03/2006 1:11:07 PM