Mentions légales du service

Skip to content
Snippets Groups Projects
bibliography.ipynb 7.59 KiB
Newer Older
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# To go further...\n",
    "\n",
    "## Books\n",
    "\n",
    "\n",
    "### Effective C++ / More Effective C++ \\cite{Meyers2005, Meyers1995} \n",
    "\n",
    "Albeit being now quite old (and therefore pre-C++ 11), these books are still to my mind highly recommended reading: Scott Meyers explain several items in few pages each with a very precious insight on why some idioms should be employed. The style is rather enjoyable: the reading is easy, which is not a small feat for a programming book!\n",
    "\n",
    "Scott Meyers present \\cite{Meyers2005} as the second book you should read about C++, the first one being the one explaing the basics to you. Hopefully this formation will play the role of the first book for you, allowing you to jump on the bandwagon and reading these directly.\n",
    "\n",
    "### Effective Modern C++ \\cite{Meyers2015}\n",
    "\n",
    "Scott Meyers's most recent C++ book, and probably his last (he announced his retirement from C++ few years ago). Very helpful to grasp many new C++ 11/14 concepts (its explanation of move semantics is really clear and corrected for me many unexact stuff read on the Web on the topic) but a bit steeper for a beginner. So also a very recommended reading, but probably once you've read \\cite{Meyers2005, Meyers1995}.\n",
    "\n",
    "### The C++ Standard Library: A Tutorial and Reference \\cite{Josuttis2012}\n",
    "\n",
    "A very helpful reference guide to know what is offered in the C++ standard library. The second edition has been updated to add many new features introduced in C++ 11.\n",
    "\n",
    "### Modern C++ Design \\cite{Alexandrescu2001}\n",
    "\n",
    "A very brillant book to understand the reasoning behind metaprogramming, by one of the father of this branch of software development. Clearly not for the faint of heart, but a really enlightening reading; I especially recommend the chapter about policies (the first one is also very interesting but some of the stuff there is now directly available in the standard library).\n",
    "\n",
    "### Exceptional C++ / More Exceptional C++ \\cite{Sutter1999, Sutter2002}\n",
    "\n",
    "These books are questions and answers that provide very helpful insight; the reading is however a bit terser than Scott Meyers' books. The content is a bit more advanced - in introduction Herb Sutter tells his books should be the third reading after Meyers' Effective C++ one... \n",
    "\n",
    "\n",
    "### Effective STL \\cite{Meyers2001}\n",
    "\n",
    "The only Scott Meyers book I would not recommend entirely heartily: as always it offers interesting insight, but it tries a bit too hard to sell the horrendous syntax required by many algorithms prior to the C++ 11. Still a good reading, but don't start by this one.\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# References\n",
    "\n",
    "[<a id=\"cit-Meyers2005\" href=\"#call-Meyers2005\">Meyers2005</a>] Scott Meyers, ``_Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)_'',  2005.\n",
    "[<a id=\"cit-Meyers1995\" href=\"#call-Meyers1995\">Meyers1995</a>] Scott Meyers, ``_More Effective C++: 35 New Ways to Improve Your Programs and Designs_'',  1995.\n",
    "[<a id=\"cit-Meyers2015\" href=\"#call-Meyers2015\">Meyers2015</a>] Scott Meyers, ``_Effective modern C++: 42 specific ways to improve your use of C++11\n",
    "               and C++14_'',  2015.  [online](http://www.worldcat.org/oclc/890021237)\n",
    "[<a id=\"cit-Josuttis2012\" href=\"#call-Josuttis2012\">Josuttis2012</a>] Nicolai M. Josuttis, ``_The C++ Standard Library: A Tutorial and Reference_'',  2012.\n",
    "[<a id=\"cit-Alexandrescu2001\" href=\"#call-Alexandrescu2001\">Alexandrescu2001</a>] Andrei Alexandrescu, ``_Modern C++ Design: Generic Programming and Design Patterns applied_'', 01 2001.\n",
    "[<a id=\"cit-Sutter1999\" href=\"#call-Sutter1999\">Sutter1999</a>] Herb Sutter, ``_Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions_'',  2000.\n",
    "[<a id=\"cit-Sutter2002\" href=\"#call-Sutter2002\">Sutter2002</a>] Herb Sutter, ``_More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions_'',  2002.\n",
    "[<a id=\"cit-Meyers2001\" href=\"#call-Meyers2001\">Meyers2001</a>] Scott Meyers, ``_Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library_'',  2001.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Online\n",
    "\n",
    "### [CppReference](https://en.cppreference.com)\n",
    "\n",
    "Provides a dictionary entry with the API explained for every functions/algorithms/class/you name it from the language and the standard library. Usually you will find them upfront if you Google a term from C++ (e.g. `std::vector`). Explanation might be a bit terse, but there is now in most cases an example powered by Coliru which present a concrete (albeit simple - but you're accustomed to that if you followed this tutorial!) use case.\n",
    "\n",
    "### [Parashift](https://isocpp.org/faq)\n",
    "\n",
    "A gigantic FAQ that covers many aspects of C++; this site is in fact a merge from two previously independant FAQ, one of which was maintained by Bjarne Stroustrup, creator of the language.\n",
    "\n",
    "### [FluentCpp](https://www.fluentcpp.com)\n",
    "\n",
    "A very interesting blog with *very* frequent posts.\n",
    "\n",
    "### [SED Saclay technology watch](https://sed.saclay.inria.fr/kw_c++.html)\n",
    "\n",
    "In the experimentation and developement departement ([SED](http://sed.saclay.inria.fr/)) at [Inria Saclay](https://www.inria.fr/centre/saclay), we publish about each week few links we found interesting. C++ is rather often mentioned; the link above provides all such links related to C++ since we started doing so.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "© _CNRS 2016_ - _Inria 2018-2020_   \n",
    "_This notebook is an adaptation of a lecture prepared by David Chamont (CNRS) under the terms of the licence [Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)](http://creativecommons.org/licenses/by-nc-sa/4.0/)_  \n",
    "_The present version has been written by Sébastien Gilles and Vincent Rouvreau (Inria)_"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
  },
  "latex_envs": {
   "LaTeX_envs_menu_present": true,
   "autoclose": false,
   "autocomplete": true,
   "bibliofile": "biblio.bib",
   "cite_by": "key",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 1,
   "hotkeys": {
    "equation": "Ctrl-E",
    "itemize": "Ctrl-I"
   },
   "labels_anchors": false,
   "latex_user_defs": false,
   "report_style_numbering": false,
   "user_envs_cfg": false
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false