I have moved my blog to Wordpress at theunixgeek.wordpress.com. I will still be checking back periodically on this one as well, though. 19 April 2009

featured

Merging Mkdir and Cd | 280 Slides Interview | I Switched to KDE 4

clickable portals

Monday, November 10, 2008

The Future of C++

Bjarne Stroustrup began C with Classes in 1979, as a better C that supports object-oriented programming, generic programming, and data abstraction. In 1983, it became C++ (although many argue it should have been ++C). Nearing the end of the century, 1998, a C++ ANSI-ISO standard was created. Sometime in the near future, C++0x is coming along.

Being that C++0x was expected to come out between 2000 and 2009, they abbreviated 200x to 0x. Nothing hexadecimal related.

C++0x is considered to be the first major revision to the C++ standard, which, as said above, has been around for just about a decade. The following features are some of the things we should be expecting from C++ next year (with comments!):

  • multithreading support (this will ease development for many C++ frameworks)
  • lambda functions (inherited from C#... sorry for the pun)
  • automatic types and type determinations (did anyone say auto from C#?)
  • improvements in templates
  • generalized constant expressions (I've been waiting for something like this for a while now)
  • initialization problems fixed
  • range-based for loop (seems like the for..each loop in Java and foreach in Python)
  • better ways to create objects
  • fixes to enums (strongly-typed now)
  • user-defined literals
  • upgrades to the Standard Library
  • tuples (the good old days of Haskell...)
  • regular expressions (now Qt doesn't have to have a QRegExp class anymore)
  • a better way to generate random numbers (finally!)
Even with all these new features, C++0x is still going to try to be backwards-compatible with C++98 and C99. More detailed information can be found here and on this blog.

Others, however, argue that existing C++ frameworks and APIs won't benefit much from the upgrade.

1 comments:

Anonymous said...

zzzz what a waste of a blog post. Here I'll improve it...

1. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/
(Working groups' spec page)

2. http://blogs.msdn.com/vcblog/archive/2008/10/28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx
(Some insight into new features.)