Blog
-
C++ string vs string_view: Fast, Non-Owning String Handling
std::string vs std::string_view: avoid copies in read-only APIs, allocation costs, lifetime rules, substring performance, and null-termination caveats.
-
C++ Concepts and Constraints | Type Requirements in C++20
C++20 concepts and constraints: requires clauses, standard concepts, custom concepts, and how they replace verbose SFINAE for clearer template errors.
-
C++ Deduction Guides: Customizing CTAD in C++17
Deduction guides for CTAD: syntax, iterator pairs, const char* to string conversions, explicit guides, and pitfalls with ambiguous overloads.
-
C++ Designated Initializers (C++20)
C++20 designated initializers let you name struct members in brace initialization. Declaration order required; differs from C flexibility.
-
C++ std::enable_if | Conditional Templates and SFINAE
enable_if / enable_if_t for SFINAE-friendly overloads: return types, default template parameters, and migrating toward C++20 concepts.
-
How to Read C++ Template Error Messages: GCC, Clang Guide
Decode C++ template errors effectively. Learn to read compiler messages, understand SFINAE notes, and use C++20 concepts to shorten error output.
-
15 Common C++ Beginner Mistakes: From Compile Errors to
Fix missing semicolons after classes, forgotten headers, void main, pointer bugs, off-by-one loops, = vs ==, and how to read compiler errors.
-
C++ Move Errors
Understand use-after-move, what std::move really does, move constructors, RVO, and ten common mistakes—so you can fix crashes and avoid undefined behavior.
-
C++ RVO and NRVO: Copy Elision, Performance, and Why return
RVO vs NRVO, C++17 guaranteed elision for prvalues, why std::move on return blocks NRVO, benchmarks, and a practical checklist.
-
C++ Exception Safety — Basic, Strong, and Nothrow Guarantees
C++ exception safety: basic, strong, and nothrow guarantees, RAII, copy-and-swap, destructor rules, and common pitfalls—with concise examples.