Where can I learn more about C++0x? [closed] - c++

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I would like to learn more about C++0x. What are some good references and resources? Has anyone written a good book on the subject yet?

ISO C++ committee
Bjarne Stroustrup
Especially his C++0x FAQ
The Design of C++0x (pdf) from C/C++ Users Journal, May 2005
Wikipedia's C++0x article
G++'s experimental support for C++0x with the -std=c++0x switch
SO's c++0x tag

Articles on
Lambda Expressions,
The Type Traits Library,
The rvalue Reference,
Concepts,
Variadic Templates,
shared_ptr
Regular Expressions
Tuples
Multi Threading
General Discussion
The C/C++ Users Journal,
The New C++,
Article
Videos
Google tech talk
overview of various features
overview at wikipedia
Library
Boost

Herb Sutter's blog, He posts new developments in C++0x and links to detailed references
Bjarne Stroustrup's Website
Both are ISO-C++ standards committee members. Herb Sutter will posts an update on each meeting that he attends.
Working Draft, Standard for Programming
Language C++

Wikipedia article seems like an excellent starting point: C++0x
It provides a good summary with brief examples and is updated regularly to match latest additions.

Here are two videos on the subject. They are a bit old, but still very relevant:
New Features in the Next C++ Standard ( http://www.youtube.com/watch?v=ZAG5txfYnW4 ) and Advanced Topics in Programming Languages Series: C++ Threads

There is a ton of stuff on this very site - some of the posts include very informative discussion. I would point you to Google but it's going to be more efficient to search in C++0x tagged posts here imo.
Here's a good one to start with, which includes indirection to Stroustrup's own summary. Scott Meyers has presentation materials on the topic here.
Check up on your favourite compiler's support for the new version. Microsoft VC10 support is summarized here. GCC info can be found here.
Official state of the standard for the language is available here. Evolution of the language is in many places tied to ongoing work in Boost. See here for some info on that.
Honestly my preference these days is to look here for 99% of needed info rather than resort to a book.

You may refer Presentation Materials: Overview of the New C++ (C++0x) by Scott Meyers.

Related

C++ tutorial and full API Specification the same as Java has? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Are there resources for C++ which would be like Java has?
Like full tutorial http://docs.oracle.com/javase/tutorial
and like full API Specification http://docs.oracle.com/javase/7/docs/api/index.html
The documentation of the C++ standard library is part of the C++ standard (ISO/IEC 14882:2011). That standard has to be purchased, but recent drafts that only minimally differ from the official standard are available on the homepage of the C++ working group.
Note that the standard is quite terse. A more beginner-friendly introduction to the C++ standard library was written by Nicolai Josuttis.
I know this site. I agree that there is no API regarding C++. This language doesn't have the a.b.c.d() form that Java has. However this site is very helpful if you knwo what to look for
C++ is a language not an API there is a specification for C++ but there is no such thing as an API.
There is a ISO standard for C++ and a book: http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470846747.html
There are many books on the standard library that details the idiomatic usage of STL and the new C++11 standard adopts many Boost libraries such as smart pointers.
Josuttis' book: http://www.josuttis.com/libbook/, interestingly there is a second edition which covers C++11 which I wasn't aware of.
There are also many Boost books which you can google for, I would recommend the following: http://www.amazon.co.uk/The-Boost-Libraries-Boris-Schaling/dp/0982219199/ref=sr_1_5?ie=UTF8&qid=1336925944&sr=8-5
and http://www.amazon.co.uk/Beyond-Standard-Library-Introduction-Boost/dp/0321133544/ref=sr_1_6?ie=UTF8&qid=1336925944&sr=8-6
Any APIs you will see will be framework and OS specific, the standard library does not cover this like JAVA does unfortunately.

Any good C++0x overviews? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I teach C and C++ and I was just wondering if there are good overview of the C++0x features.
I am going to read the standard, but that will take time and I'm definitely going to make it for this semester (next year hopefully). For this semester I just want to make one extra lecture about C++0x (and maybe make sure that none of the taught features are deprecated/changed in C++0x).
The best two I know of are the Wikipedia page and Stroustrup's FAQ.
I really wouldn't recommend reading the standard until you know what you're looking for. Besides being significantly larger than the C++03 standard, the organization and clarity has gotten somewhat worse in parts.
If you're only going to do one lecture on "advanced C++", you might focus on C++0x features which were adopted from other common sources, such as boost::smart_ptr and std::tr1::unordered_map. Such things are ahead of the curve on adoption.
Herb Sutter has written many articles on the changes which you might find useful.
Wikipedia has a long overview. I would hightlight rvalue references and lambdas.
There is a lot of overviews C++0x in a network. I can recommended to read a wiki page, and C++0x FAQ
I've been reading this Code Project overview:
Explicating the new C++ standard (C++0x), and its implementation in VC10
The C++ Annotations have everything available in gcc 4.4. This is a (free) book rather an overview.
Scott Meyers has a 3-day course titled "An Overview of the New C++ (C++0x)", and perhaps more interestingly, a ~335 page, $30 PDF with all the course notes (if you can't spare the time or money for the course).
I know the time & cost of the course might be prohibitive, but the PDF might be an option.

C++ tutorial for experienced C programmer [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have been programming exclusively in C for 25 years but have never used C++. I now need to learn the basics of C++ programming. Can anyone recommend an online tutorial (or failing that a book) that would be most suitable for me.
Thanks.
Edit: I actually needed the C++ purely for the purposes of adding a couple of dirty hacks to a huge and old C program. Converting the entire program in to properly written OO code is entirely economically unfeasible. Some people have criticized the suggested solutions based on the fact that they will lead me down the path of becoming a "C programmer who knows some C++ without getting in to the proper spirit of C++" - but actually that fits my requirements perfectly.
Edit: The link in the top voted answer seems to be broken right now but the file appears to exist in multiple places - e.g. here.
This might be of some use: C++ tutorial for C users.
If you're looking for a book, check out "C++ for C Programmers" by Ira Pohl (Amazon).
I found Thinking in C++ very good when I was going from C to C++.
Link broken - can now be found here
I'd like to suggest the New C++ Super-FAQ created by Bjarne Stroustrup, Herb Sutter, Andrei Alexandrescu, Pearson / Addison-Wesley Publishers and Marshall Cline (http://www.parashift.com/c++-faq/).
If you can get hold of a 2nd edition of Scott Meyer's "Effective C++", that should help, as it was written for former C developers. It lists 50 rules that you should follow which are easily to remember, thoroughly explained, and fun to read. (Scott's goal was to write the "best 2nd C++ book" one should read an I think he succeeded in that.)
The 3rd edition of the book was completely overhauled and targets developers coming from C#, Java etc. more than earlier editions. It might be good read nevertheless.
Accelerated C++ is good too.
This very recent SO question asked by an inexperienced C programmer nevertheless has answers that are also relevant to experienced C programmers.
If you're already a good C programmer, you can probably jump right into the bible, Stroustrup's The C++ Programming Language.

Open source examples of well designed applications [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Do you know of well designed open source applications that are instructive to analyse?
Specifically, I'm interested in practical applications object-relational mapping in C++ based programs, where there is a good separation between a domain model and persistence/serialization functionality.
If you include well designed open source libraries that are instructive to analyse, have a look at Boost.
About persistence / serialization (not relational mapping though), have a look at Boost Serialization, you might find nice ideas!
"...one of the most highly regarded and expertly designed C++ library projects in the world."
— Herb Sutter and Andrei Alexandrescu, C++ Coding Standards
"Item 55: Familiarize yourself with Boost."
— Scott Meyers, Effective C++, 3rd Ed.
"The obvious solution for most programmers is to use a library that provides an elegant and efficient platform independent to needed services. Examples are BOOST..."
— Bjarne Stroustrup, Abstraction, libraries, and efficiency in C++
While this doesn't fit your specific requirements (it's not a business app for a start), I think that OGRE 3D is a great example of an open source C++ project.
V8 javascript engine is said to be very well engineered. http://code.google.com/p/v8/
Google Chrome also has an interesting architecture and high quality code base. http://code.google.com/chromium/
Both are open source, under BSD-like license.

Good book/resource to learn "effective" template programming in C++? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I saw Scott Meyers' "Effective C++" third edition book having a small section on "Template Programming".
Any other book/links containing information on "effective" usage of templates ?
I like Modern C++ Design: Generic Programming and Design Patterns Applied. I found it very well written and clear. Contains a few advanced topics.
Vandevoorde / Josuttis 'C++ Templates the Complete Guide' is very accessible.
C++ Templates - The Complete Guide. Alexandrescu's Modern C++ Design is very good, but I wouldn't recommend it unless you're already familiar with templates. It's also geared more to C++ Framework creators.
I quite like C++ Template Metaprogramming by Abrahams and Gurtovoy.
Scott Meyers deals with the Standard Template Library in Effective STL. That may be relevant for you.
A rarely mentioned but solid book is C++ Common Knowledge by Stephen C. Dewhurst. "Among the first users of C++ at Bell Labs", Dewhurst gives the book a somewhat deceptive title because he actually covers quite a bit of advanced material in particular in regards to templates.
Dewhurst's book is organized similarly to Meyers's with 63 "Items" that you can usefully read on their own. On templates you should look over items 45-59 (about 70 pages of reading).