Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

C++ 23 Language Standard Declared Feature-Complete (infoworld.com) 61

An anonymous reader shares this report from InfoWorld: C++ 23, a planned upgrade to the popular programming language, is now feature-complete, with capabilities such as standard library module support. On the horizon is a subsequent release, dubbed C++ 26.

The ISO C++ Committee in early February completed technical work on the C++ 23 specification and is producing a final document for a draft approval ballot, said Herb Sutter, chair of the committee, in a blog post on February 13. The standard library module is expected to improve compilation.

Other features slated for C++ 23 include simplifying implicit move, fixing temporaries in range-for loops, multidimensional and static operator[], and Unicode improvements. Also featured is static constexpr in constexpr functions. The full list of features can be found at cppreference.com.

Many features of C++ 23 already have been implemented in major compilers and libraries, Sutter said. A planned C++ 26 release of the language, meanwhile, is slated to emphasize concurrency and parallelism.

This discussion has been archived. No new comments can be posted.

C++ 23 Language Standard Declared Feature-Complete

Comments Filter:
  • by Anonymous Coward

    Though I gave up on C++ quite a bit before "C++11". It got too windowsy and bloated for my taste, full of feeping creatures. C89 with inline and I'm pretty happy. Though I'll probably brush up and write C++ if anyone really wants to pay me for all that. Bit of a drag, though. It's a large language.

    Upside: At least there is a formal standards process and numerous implementations. Unlike some other languages that really want to be popular so very bad. Downside: A few standard revisions too many.

    • it's like features are meant to satisfy the low level system implamentations like driver hook in for example, then reword to satisfy the userland side. That's iso compliance for you, then again every time the question of compliance to a standard comes up you can always just create another language.....

    • by Rei ( 128717 )

      So you gave up on C++ before they started fixing its huge annoyances and adding in awesome features?

      Don't get me wrong - I use Python for most simple projects. But when I need performance, I use C++, and it's much better than it used to be (even if still far from Python-level simplicity / full-featuredness).

      Unicode was IMHO one of the big remaining weaknesses. Parallelism is the other - std::thread and lambda notation makes it really easy to launch threads, but the STL structures aren't threadsafe, and t

  • On some other language, they're playing house.
  • by SuperKendall ( 25149 ) on Sunday March 05, 2023 @02:04PM (#63344931)

    "There's nothing faster than the speed of light"

    "Oh yeah??.... C++!"

  • SPAM? (Score:5, Interesting)

    by L.Kynes ( 10259278 ) on Sunday March 05, 2023 @02:57PM (#63345017)

    The same story has been marked as SPAM in Slashdot submissions 18 days ago, two times.

    February 16, SPAM ISO C++ Standards Committee completes work on C++23 [slashdot.org]

    February 19, SPAM ISO C++ Standards Committee completed technical work on C++23 [slashdot.org]

    Everyone involved, please return your nerd card. Many thanks to Editor David.

  • When it comes to programming languages, the weird "version" is preferred in the literature over "upgrade", given the sometimes-conentious nature of language changes and their potential to break compatibility.
  • Looks pretty good (Score:5, Informative)

    by serviscope_minor ( 664417 ) on Sunday March 05, 2023 @03:33PM (#63345081) Journal

    GCC has good support already:

    https://gcc.gnu.org/projects/c... [gnu.org]

    A huge number of the new "features" are consistency fixes which make the language more regular and obvious, those that standardise what compilers have been doing for ages, and those that bring it more in line with modern standards (unicode).

    • This is a good thing. If the standard was really terribly ambiguous, we'd be back to the old days of having compilers treat the same code in vastly different ways. In most cases, although the standard might not be clear, there's a fairly obvious interpretation that's easy and straightforward to implement in the compiler and then an alternative interpretation that would take more work. The compiler writers all tend to disambiguate in the same way. But it's still beneficial to update the standard when the
      • Yeah, some is lack of clarity. Anything labelled DR is a fuckup in the old standard. Others are where there are obvious, long standing extensions (#warning) which are finally codified. Others are removing language irregularities, often around constexpr. That was introduced in a very staged fashion in order to gain implementation experience, but the rules about what is an isn't runnable at compile time weren't obvious.

  • n/t

  • by gillbates ( 106458 ) on Monday March 06, 2023 @11:34AM (#63347121) Homepage Journal

    I like the notion of importing libraries directly. I really do. But the #include functionality is going to make new code a rat's nest of import(s) and #include(s), because you'll import libraries provided by the vendor, but #include the code written by your coworkers.

    The subtle semantic differences between #including a header file which will also require compiling and linking its corresponding .cpp file is going to make C++ that much more difficult for novices is to learn. Someone coming from Python is going to wonder why C++ can't just import someone else's module the way Python can.

    You and I, of course, understand why this difference exists, but to an outsider, this looks like C++ is either really stupid, or trying to play catch up to Python.

    • by Megane ( 129182 )

      Someone coming from Python is going to wonder why

      Or maybe we should just let Python be Python instead of trying to wedge Pythonisms into C++? That's how you get a Perl, already bad enough as the bastard child of awk and C, but it had to add redundant syntax that neither had, things like putting the if condition after the code it controlled, because Larry Wall loved to play with language variations.

      • instead of trying to wedge Pythonisms into C++?

        I gave up that fight when lambdas were introduced. B-B-But Java has them! And while they're "neat" from a computer science perspective, they're absolutely awful from the perspective of the maintenance coder trying to fix a bug. Nameless functions are cool when you need to add a sort() to your class. They're absolutely awful when used to implement business logic, and you have no way of determining if the correct business rule is being applied because yo

I cannot conceive that anybody will require multiplications at the rate of 40,000 or even 4,000 per hour ... -- F. H. Wales (1936)

Working...