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


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.


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.)

Pavel said...

The Java Enterprise platform leverages the robustness of the Java programming language that allows developers to write the code only once and execute the application on any platform. Presently more than two-thirds of web development managers use the Java Enterprise platform to develop and deploy their applications. The Java Enterprise platform provides a framework for developing and deploying web services on the Java platform. The Java API for XML enables Java developers to develop interoperable and portable web services. java software company | software development company | java web development | blackberry application development | iphone application development | android application development | java outsourcing | it outsourcing services | http://www.tenaxtechnologies.com