Multithreading, concurrency, locks, condition variables - implement future and async
Exceptions - discuss the various exception safety guarantees and how to fulfill them when implementing the above features.
Cache friendly structures - use/measure std::map and std::unordered_map. Implement map as a sorted array. Implement unordered_map using various hashing strategies - measure performance and discuss tradeoffs.
As for comprehensive projects, you need to choose based on your interests or needs.
Chrome V8
C++ is a language with many features. Depending on the features you want to learn, there are different mini projects to practice:
RAII and move semantics - implement
unique_ptr
Operator overloading - implement
complex
Raw arrays and pointers - implement
vector
Memory management and introdue to atomics - implement
shared_ptr
andweak_ptr
Unions and pointers and c-style strings - implement
string
with small string optimizationBit operations - implement
bitset
Memory allocation strategies - implement
allocator
Template metaprogramming - implement
tuple
Algorithms - implement
sort
Multithreading, concurrency, locks, condition variables - implement
future
andasync
Exceptions - discuss the various exception safety guarantees and how to fulfill them when implementing the above features.
Cache friendly structures - use/measure
std::map
andstd::unordered_map
. Implementmap
as a sorted array. Implementunordered_map
using various hashing strategies - measure performance and discuss tradeoffs.As for comprehensive projects, you need to choose based on your interests or needs.
Reference: Reddit