Blog
-
C++ Atomic Operations | 'Atomic Operations' Guide
C++ std::atomic and how to prevent data races in multithreads using atomic operations. Explains the advantages over mutexes and practical code patterns.
-
C++ Attributes | Complete 'Attributes' Guide
How to use C++ attributes (nodiscard, deprecated, etc.) for compiler hints and warnings.
-
C++ auto Keyword | Type Deduction Complete Guide
Use the C++ auto keyword for type deduction: fewer repeated type names, deduction rules, iterators, lambdas, and pitfalls. Practical guide for modern C++.
-
C++ auto Type Deduction | Let the Compiler Handle Complex Types
C++ auto keyword and type deduction. Using auto with iterators, lambdas, and template return types, along with deduction rules and caveats.
-
C++ Barrier & Latch — Complete Guide
Implement thread synchronization with C++20 std::barrier and std::latch.
-
C++ Benchmarking | A Complete Guide to Benchmarking
How to benchmark C++ code correctly - avoiding compiler optimizations that skew results, using Google Benchmark, and reading the numbers you get back.
-
C++ std::bind | Placeholders and partial application
std::bind is a function introduced in C++11 that creates a new function object by pre-binding a function and its arguments.
-
C++ Bit Manipulation | Complete 'Bitmask' Guide
Bit operations (AND, OR, XOR, shift) are low-level techniques used for flags, bitmasks, and algorithm optimization.
-
C++ bitset | 'Bit Set' Guide
This is a bitset guide that summarizes the basics of bit operations, bitset vs vector<bool>, masking, permutation, and combination patterns.
-
C++ Branch Prediction — Complete Guide
C++ branch prediction: CPU pipeline, misprediction penalty, [[likely]]/[[unlikely]], branch elimination, sorting effects, and PGO with practical examples.