Really: C++0x

Started by
34 comments, last by NotAYakk 15 years, 9 months ago
The other C++0x thread has devolved to flame-fests about languages, semantics, and other horrors. So can we just talk about C++0x? :-) I think this is the latest working group report: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2597.html I'm a bit ... intimidated ... by the raw wall of text. Is this what the headings mean?
Quote: Integrated into working paper: Already part of the proposed standard Proposed wording under review in Core: Wording has been made, but the final blessing has not. Almost certainly will be part of the proposed standard. Blessed by evolution - wording available for initial review by Core: Intended to be included in the standard, but the CWG hasn't gotten around to officially reading this version. Core issues addressed by specific papers: Side issue Active topics in the Concurrency sub-group: We want threads. These papers are intended to make it into C++09. Hurry up, in parallel. New work for Evolution: Evolution is mostly finished it's job -- these are the last little bits. Might as well use the resource. Should make it into the standard? Background papers for reference & Evolution of current proposals: These links should go somewhere, as they are important! Not quite ready for C++0x timetable, but actively pursued: Sorry! You have failed in getting your work into C++09. So we are dropping you. There is some hope that we'll fold you into C++10, or C++09.1! Heading for a separate TR: Omg, we are swamped by features. These will be put into the "beta for the next version of C++" TRs. Heck -- if you polish it, it might even beat the previous category! Not ready for C++0x, but open to resubmit in future: Not good enough to spend resources on, but not dumb enough for the next category. No interest, or superseded by other proposals: Go away. No really. Stop submitting this crap. We solved it better, anyhow!
I'm just trying to get a grasp on what is probably going to come out the other end of the C++0x sausage factory! Less wall-of-texty, anyone have a favourate feature they want to gush about?
Advertisement
Quote:Original post by NotAYakk
I'm a bit ... intimidated ... by the raw wall of text. Is this what the headings mean?

Yeah, that's a pretty good summary.

You missed the part about the subcommittees. The Evolution committee came up with core changes to the language, these and others are reviewed by the Core committee and will be adopted (or not) into the core language part of the standard.

There is also the Library committee, which reviews and adopts (or not) changes or additions to the library part of the standard. See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2598.html

Then there is the C-compatibility committee, who try to make sure there is not too much deviation from the language changes adopted by the ISO C standards committee (many individuals are on both committees). Problem there is every time C++ tries to adopt new C features, the C committee seems to go out of their way to make C less compatible with C++. Committees, feh.

All of these committees work back-and-forth (and there is the committee of the whole as well). the preferred way to implement a new feature is in the library, not the language, if possible.

Stephen M. Webb
Professional Free Software Developer

Quote:Original post by NotAYakk
Less wall-of-texty, anyone have a favourate feature they want to gush about?

I'm totally excited about closures! A new kind of undefined behavior awaits with all the referencing long-gone local variables kind of stuff :)
Most of the things I like about C++0x are already in boost. Much of the rest is new complicated language features. Of the complaints levied against C++, "not enough complicated language features" is not in the top five.
Quote:Original post by Sneftel
Most of the things I like about C++0x are already in boost. Much of the rest is new complicated language features. Of the complaints levied against C++, "not enough complicated language features" is not in the top five.


Well, in fairness, concepts is created with the intent of simplifying some of the template metaprogramming "tricks" used in the past. The intention is to make it less complicated, not more. I'm not sure it will work out that way, but at least the intention is there.
Good intentions also created the export keyword, and we all know how well that worked out. About the only language change I'm interested in is rvalue references. Otherwise, the rest either seem unnecessary or not worth the complexity they add to the language. Maybe I'll change my mind once these features hit the mainstream, but I wouldn't place any bets on it.
Quote:Original post by SiCrane
Good intentions also created the export keyword, and we all know how well that worked out. About the only language change I'm interested in is rvalue references. Otherwise, the rest either seem unnecessary or not worth the complexity they add to the language. Maybe I'll change my mind once these features hit the mainstream, but I wouldn't place any bets on it.


I think the main issue with C++ is the ingrained mentality to not break backwards compatibility. Certainly a noble goal, but there's a lot of things in the language which really would be done differently if they were allowed to make such tweaks without concern for backwards compatibility. I say this, because I make the distinction in contrast to some other languages, which made, both, the sorts of improvements I'm talking about, as well as change for the sake of change (as I'm learning the more I play with Java, in particular).

That being said, I'm excited to see Concepts more than most of the other libraries. My main concern is that if I don't think 99% of C++ developers will use it, because as it is templates are above the head of the average developer. But my instincts tend to agree with yours; it's kind of interesting how a feature that is supposed to lower the bar for entry into using templates effectively might actually wind up making it even more difficult.
Quote:Original post by SiCrane
Good intentions also created the export keyword, and we all know how well that worked out. About the only language change I'm interested in is rvalue references. Otherwise, the rest either seem unnecessary or not worth the complexity they add to the language. Maybe I'll change my mind once these features hit the mainstream, but I wouldn't place any bets on it.


Also, regarding the export keyword, ... hey, I think export was a great idea. The only problem was with C++'s archaic linking model, it's a royal pain to implement. But, as far as a feature, export would've been great.
the only things I'm really looking forward for is the strongly typed enums, and the auto keyword. I'm not really all the convinced on the new chars format. The unicode etc. But maybe my mind will change on that stuff.

But will those unicode chars and more be available also for C language also? I don't really care since I don't use it. But wouldn't that make it harder for adjustment to older libraries updating to it?

I haven't read all the new features. But I do enjoy the regex, array, and shared_ptr being added also.

I do wonder if it will probably be pushed back to 2010 since 2009 is coming awfully quick. Really haven't heard any knew updates. Waiting for GCC-4.4.0 to be released in a rc so I can see what will be in GCC-4.5.0

I'm not really that fond of the proposel for modules. It looks too weird looking and easily confusing.

I wish they would come up with an option to have like in C#

property double someFoo(){    get()    {    }    set(double& newValue)    {        this->oldValue = newValue;    }};


And initialize arrays like
static int[10] myArray; // C# way


[Edited by - Eckos on June 23, 2008 2:20:37 PM]
Quote:Original post by Rydinare
I think the main issue with C++ is the ingrained mentality to not break backwards compatibility. Certainly a noble goal, but there's a lot of things in the language which really would be done differently if they were allowed to make such tweaks without concern for backwards compatibility.

Yeah. Hot spit, the one thing that would have made C++ a real success would be to remove the one thing that made C++ the success that all the "better C++" reinventions hope to one day become.

Seriously, the two best features of C++09 have got to be auto declarations and delegating constructors. Those two features I would likely use every day. Well, almost every day. You know what I mean.

Stephen M. Webb
Professional Free Software Developer

This topic is closed to new replies.

Advertisement