Good C++11 resources for advanced programmer

Started by
13 comments, last by mrbastard 11 years, 6 months ago
Hey guys,

I'm wanting some learning resources for C++11 oriented toward advanced programmers. I already know C and C++ quite fluently. But since I haven't used either in a couple years for any serious/commercial work, I'm a bit rusty in certain areas. Some of the things I need to brush up on:

  • "const correctness"
  • the various cast operators and when and when not to use each
  • all of the stuff available in the 11 standard libraries and how to use them (I'm prone to reinvent wheels)
  • proper C++ software design practices and conventions
  • general best practices and pitfalls
  • proper template class design

In the past when I normally used C and C++ it was for actual systems programming, where often no implementation of the full standard libs and runtimes even existed (often had to roll my own malloc and free implementations). So while I know the syntax through-and-through, have intimate knowledge of pointers and memory and know how the language works/runs, I'm prone to "reinvent the wheel" in many situations because I didn't know the stdlibs already implemented the thing I needed. I also need to brush up on "const correctness", referencing, etc. And anything to help me better design classes, polymorphic interfaces, templates, operators, and software in general would also be very helpful. And I don't want to waste my time with beginners' books talking about variables being storage space for numbers. tongue.png

I'm not really doing this for any important project or commercial work... we're using C# for our projects. But I invested a lot of time (and money) in the past into my programming skills, which included C and C++. It's not an art I want to lose. And since I now have Visual Studio 2012 and C++11 is out and taking the programming world by storm I don't want to end up behind the times; I've got to keep up with the rest of the world.

I'm looking for any online references/materials, articles, tutorials, books, videos and anything and everything that can be helpful to me in re-mastering C++ and learning about the new C++11 standard.

Thanks,

--ATC--
_______________________________________________________________________________
CEO & Lead Developer at ATCWARE™
"Project X-1"; a 100% managed, platform-agnostic game & simulation engine

Please visit our new forums and help us test them and break the ice!
___________________________________________________________________________________
Advertisement
First of all look at this link, then you can read all interesting you proposals by clicking it.

What about books... It will be written sometime but probably after > 0.5 year. IMHO.

Read some cool guy's blogs. Just like that one is
C x 2 C x o C x C f nice C x C s C x C c
Sorted roughly in tutorial-to-reference order:

http://www.pearsoned...100000000389209
http://www.artima.co..._of_the_new_cpp
http://www.cppstdlib.com/

// BTW, it's "class template", not "[s]template class[/s]". As in, there are two kinds of templates ("families") -- class templates and function templates. A simple way to remember this is to just substitute "family" for "template" (which it is) and read this like an ordinary English phrase -- "class family" (as in: family of classes) sounds just right, "[s]family class[/s]" doesn't really make much sense (class of families? wacko.png ).
+1 for the Meyers ebook and the new edition of the Josuttis std library book. For a bit more depth on the c++11 std threading stuff, William's book is very good. On templates the Josuttis/Vandevoorde book is very good.

For const correctness and casting, you can see the c++faqlite

Microsoft's channel9 has some excellent videos - look out especially for Stephan T Lavevej's series and Herb Sutter's stuff on C++11. All the GoingNative and C++AndBeyond stuff is well worth a watch too. A good starting point might be Bjarne's Stroustrup's talk on C++11 style.
[size="1"]
I'd strongly recommend, for your level of knowledge and what you're asking, "The C++ Programming Language" by Bjarne Stroustrup. It does not (yet) address C++11 features, but most of what you listed is not C++ but just the basic language as it's been since about 1992. There is no better reference for the fundamental language, and he writes clearly and concisely and covers almost everything you mentioned, including the reasoning behind language features and idioms.

Stephen M. Webb
Professional Free Software Developer

Over the summer I wrote a free (reg-ware) eBook for SyncFusion targeted at C# developers aiming to learn modern C++. You might find it helpful as it covers const-correctness, the cast operators and their use cases, references, the ins and outs of all the constructors and assignment operators, namespaces (something I think is important in modern C++ but which is easy for people coming back to it to overlook or ignore), RAII and the Standard Library's smart pointers (unique_ptr, shared_ptr, the make_shared function) and (for Windows) ComPtr, strings (much better than they used to be but they could be better still), lambdas, some basic idioms, and some of the other important features of the C++ Standard Library (std::vector and other containers, iterators in general, and some miscellany suggestions for things to look into further).

It's not as strong on the Standard Library as it could be, but the design goal was approximately 100 pages with a focus on practical examples (there are ~20 sample programs with full code). Link here: http://www.syncfusion.com/resources/techportal/ebooks/cplusplus ; intro/overview here: http://channel9.msdn.com/coding4fun/blog/C-for-C-Developers-with-C-Succinctly . Comes in PDF and MOBI and the code samples are available on bitbucket: https://bitbucket.org/syncfusion/cpp_succinctly .

(I've already been paid for it and don't get any bonuses for downloads or anything so I'm recommending it purely on a "you may find it useful" basis, without any ulterior motives. If you download it and it helps you, great! If you skip it, that's fine too.)

Ultimately when the next edition of The C++ Programming Language comes out in March, that'll definitely be the book to get.
As mentioned by mrbastard and MikeBMcL, channel9 is pretty great.

Since you asked about C++11: This is the best explanation of rvalue references that I have heard so far:

http://channel9.msdn...rences-in-Cpp11
Thank you everyone! Lots of great materials! Keep it coming if anyone has more! :)

@ MikeBMcL:

I downloaded the book in PDF; sounds great! And I don't think the desire to make money would be an "ulterior motive". If it were then we'd all be a bunch of evil, shady bastards because we all have to eat. ;-)
_______________________________________________________________________________
CEO & Lead Developer at ATCWARE™
"Project X-1"; a 100% managed, platform-agnostic game & simulation engine

Please visit our new forums and help us test them and break the ice!
___________________________________________________________________________________
If you want to learn about the 6 features Microsoft added in VS2010, the blog series STL wrote covers the topics in a lot of depth. I highly recommend you start there, because it doesn't skip over a lot of the details. It is a bit dated, but the stuff that is difference is pretty minimal, so it's still a good place to start.

http://blogs.msdn.co...c10-part-1.aspx
http://blogs.msdn.co...c10-part-2.aspx
http://blogs.msdn.co...c10-part-3.aspx
http://blogs.msdn.co...10-nullptr.aspx

Actually, the nullptr one wasn't by STL, but he did a video here: http://channel9.msdn...-about-nullptr/ .

After that, I also recommend Scott Meyer's PDF, Herb Sutter's Lambdas Lambdas Everywhere presentation, and the latest from Going Native 2012. There was one on the library changes, and Alexandrescu's variadic template presentation is quite good.

http://channel9.msdn.com/Events/PDC/PDC10/FT13
http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Variadic-Templates-are-Funadic
http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/STL11-Magic-Secrets
-- gekko
Not sure if this got mentioned, but The C++ Standard Library: A tutorial and reference (2012)
http://www.amazon.co...tandard library
this is an awesome book. PDF version's out there if you don't want to spend some money on this.
An invisible text.

This topic is closed to new replies.

Advertisement