# Programming with C++ ## Books Here are some references on C++: * [The C++ Programming language, Fourth edition, Bjarne Stroustrup](http://www.stroustrup.com/4th.html) is C++11/14 is the exhaustive bible/reference from [B. Stroutrup](http://stroustrup.com), the inventor of C++ * [Programming Principles and Practice Using C++ 2nd edition](http://www.amazon.com/Programming-Principles-Practice-Using-Edition/dp/0321992784) (C++11/14) is a book for new comers to C++, from basics to more advanced topics it has nice explanations and comes with exercices ([solutions here](https://github.com/bewuethr/stroustrup_ppp) * [A tour of C++](http://stroustrup.com/Tour.html) Pocket version presenting modern C++ by [B. Stroutrup](http://stroustrup.com). * [Effective C++: 55 Specific Ways to Improve Your Programs and Designs ](https://www.amazon.fr/Effective-Specific-Improve-Programs-Designs/dp/0321334876) Nice book written by [Scott Meyers](http://scottmeyers.blogspot.fr). Is pre-C++11 but still very useful. * [Effective Modern C++ 42 ways to improve Your Use of C++11 and C++14](https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996), from [Scott Meyers](http://scottmeyers.blogspot.fr), highly recommended to understand the new way of developing after C++11. Is for intermediate to advanced C++ programmers. * [Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples](https://www.amazon.fr/Scientific-Engineering-Introduction-Advanced-Techniques/dp/0201533936) Pre-C++11, very good to learn C++ (for C and Fortran programmers) and presents design techniques. ## Videos * [Modern C++](https://www.youtube.com/watch?v=TJHgp1ugKGM) * [Effective C++11/14](https://www.youtube.com/watch?v=IqVZG6jWXvs) Nice video from Scott Meyers (authors of the book effective C++11/14). very good explanation of std::move/std::forward * * [Programming using C++ : Video Tutorials](http://www.tutorialspoint.com/video_tutorials/programming_using_cplusplus/PCP-T) ## FAQ [C++ FAQ](https://isocpp.org/faq) [Don’t be Afraid of Returning by Value, Know the Return Value Optimization](https://blog.knatten.org/2011/08/26/dont-be-afraid-of-returning-by-value-know-the-return-value-optimization/) [Copy elision](http://en.cppreference.com/w/cpp/language/copy_elision) ### Smart pointers * [When should I use raw pointers over smart pointers?](http://stackoverflow.com/questions/6675651/when-should-i-use-raw-pointers-over-smart-pointers) * [Which kind of pointer do I use and when?](http://stackoverflow.com/questions/8706192/which-kind-of-pointer-do-i-use-when)