Note: marked as community wiki.
In recent days, I\'ve realized how little I know about C++.
Besides:
The way I used to improve my c++ is reading the source code of leveldb. Because leveldb is a product level code. So you can learn the cpp idiom and design pattern from a real product. Let me show you some example
Leveldb use the Pimpl idiom, almost in all of it's head file, such table.h table_build.h write_batch.h. You can learn from the code directly
Leveldb use many OO design pattern, such as build pattern, the table have the table_build class to build the table, the block have the block_build class to build the block
Leveldb also use the Iterator pattern, the iterator make us use leveldb more convenient.
So I think leveldb contain many idiom or design pattern that c++ engineer should know.