Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!


The Lounge<C++> should write a book. This is how we will do it:

Book Coverage and Topics

The book will be a collection of articles on interesting C++(11) techniques, tips, workarounds, patterns, rules, etc which have not been covered in-depth elsewhere. Pretty much anything which could or has been written in a blog post by Lounge members. The target audience is intermediate to advanced C++ users hoping to learn some tricks.

Non-standard libraries can be covered if you feel they have a wide appeal or provide a good example. Boost is always acceptable.

List of Topics that need to be written

  • List of new and unknown UB
  • PODs, trivial, standard layout explanation (in practical terms)
  • Lambdas and captures (tricks, not syntax explanation)
  • Rule of Zero
  • 'enable if' and other sfinae (comprehensive list of methods)
  • template aliases
  • stack-based TMP
  • Bit fiddling (using C++11 features)
  • Variadic template tricks
  • Type erasure
  • 'make unique' and other useful std helpers
  • Move semantic tricks (do not need another rvalue reference explanation)
  • Universal references
  • auto and decltype (best practices, common uses)
  • Expression templates

How to Help

A few ways a lounger can help at this moment:

  • Write or adapt an article into the book
  • Edit or add-onto an article. Communicate with the original author if possible.
  • Figure out how to work asciidoc because Pubby is too stupid to understand it!

Writing Guide

The book is divided up into "articles" which are mostly self-contained, but contain links to other articles under a list of dependencies. Each article gets a new file in the ./book/ directory.

In addition, each article has a few "use cases" which provide some examples of the technique you're describing. Real-world use cases are ideal.

A style guide is being written and can be found at style.txt.

Recent activity


Commits by pubby were pushed to pubby/book

51e17c1 - Add list of topics that need to be written. Topics were brainstormed months ago in a previous attempt to get a book going.

Commits by pubby were pushed to pubby/book

32db438 - Add draft of read-only members article. Article covers workarounds to get members which are publicly read-only.

Commits by pubby were pushed to pubby/book

748891e - Fix usefulness attributes. Pubby stupidly got usefulness and difficulty attributes confused and committed to early. Doh!

Commits by pubby were pushed to pubby/book

ee5ac30 - Add attribute to mark untested code. {untested} will output a warning which explains the code is untested. Also removed some leftover asciidoc testing garbage.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.