Slashdot Mirror


Latest Proposals for C++0x

CodeDemon writes "It looks like the ISO/IEC JTC1/SC22/WG21 working group has made some headway in reviewing new proposals for the C++ language. The long anticipated upgrade for C++, C++0x, may be just around the corner. Head on over to check out the proposals yourself."

7 of 911 comments (clear)

  1. Re:where does the name come from? by Joe+Decker · · Score: 5, Informative

    Language revs are often referred to by the year of the completion of their standardizatioin (e.g., C++98.) The next C++ would presumably be somewhere in this decade, e.g., C++05 or so, but of course nobody is sure what year the work would be completed in, ergo C++0x.

  2. Re:Why C didn't progress to D.. by td · · Score: 4, Informative

    B didn't come from anything called A, but from a language called bon, named for Ken Thompson's wife Bonnie. (At least, that's what Ken says, but he's famous for pulling the legs of people who drool over stupid trivia from his past.) The inspiration for bon was Martin Richards' BCPL, a stripped version of Christopher Strachey's [et al] CPL (Combined Programming Language, I think; the B in BCPL is for Bootstrap or Basic, sources differ.) It doesn't stretch the truth too far to think of B as an even-more stripped down BCPL.

    --
    -Tom Duff
  3. Re:why not... by Tony+Hoyle · · Score: 3, Informative

    B actually existed... it was the language that predated C.

    I've no idea if there was an A though.

  4. Re:why not... by mattdm · · Score: 3, Informative

    The B programming language stemmed from one called BCPL. Therefore, the logical successor is P, not D.

  5. Re:C++0x's biggest new feature... by be-fan · · Score: 3, Informative

    Smart pointers are pretty fast and cheap, because they're reference counted. Basically, there are the following costs:

    1) Creating a smart pointer involves an extra heap allocation to allocate a counter. This is necessary because boost's smart pointers (which are the basis of the standard) are non-intrusive --- they don't require giving the target object a special counter. This overhead, can be eliminated by using intersive_ptr, which allows you to put the counter inside the object itself, and provide functions to increment/decrement it.
    2) Copying a smart pointer involves an atomic increment of a counter.
    3) Having a smart pointer go out of scope involves an atomic decrement of a counter.
    4) When the last smart pointer is destructed, an extra heap free is needed to free the counter.

    --
    A deep unwavering belief is a sure sign you're missing something...
  6. Re:hehe.. sorta by IthnkImParanoid · · Score: 3, Informative

    Why in the world would you want access to matrix3 from the plus operator???

    To fill the matrix (which we assume is large enough to make copying the values expensive) directly, instead of copying it into a temporary matrix with the overloaded '+' operator then copying it over with the overloaded '=' operator. You could do

    MatrixAdd(const matrix& m1, const matrix& m2, matrix& result);

    but then what's the point of overloaded operators?

    --
    It's nothing but crumpled porno and Ayn Rand.
  7. Who cares? by KalvinB · · Score: 4, Informative

    The extra bloat in Visual Basic is forced into my projects wether I use it or not.

    C++ on the other hand can have all the extra stuff it wants and it doesn't affect my project. If I don't wan to use templates or whatever, I don't have to. And the compiler won't force me to include anything.

    Whining about C++ having too many features is like bitching that Baskin Robbins has too many flavors. Nobody is forcing you to buy them.

    Ben