RAII
Resource Acquisition Is Initialization - tie resource lifetime to object lifetime
"RAII is the foundation of exception-safe C++ code"
PIMPL
Pointer to Implementation - hide implementation details in private pointer
"PIMPL reduces compilation dependencies and hides implementation details"
SFINAE
Substitution Failure Is Not An Error - template metaprogramming technique
"SFINAE lets you enable/disable template instantiations based on type properties"
ODR
One Definition Rule - each entity can have only one definition in program
"ODR violations are undefined behavior and hard to debug"
ADL
Argument-Dependent Lookup - compiler looks for functions in namespaces of arguments
"ADL is why you can write 'std::cout << x' without qualifying operator<<"
CRTP
Curiously Recurring Template Pattern - template inherits from instantiation of itself
"CRTP gives you static polymorphism without virtual function overhead"
UB
Undefined Behavior - code that can do anything, compiler makes no guarantees
"Undefined behavior isn't just unpredictable - it can break your entire program"
ABI
Application Binary Interface - low-level interface between compiled code modules
"Breaking ABI means recompiling everything that links against your library"
POD
Plain Old Data - C-compatible data types with trivial construction/destruction
"POD types can be memcpy'd safely and work with C APIs"
NRVO
Named Return Value Optimization - compiler eliminates unnecessary copies
"NRVO means returning large objects by value can be zero-cost"
TMP
Template Metaprogramming - computation at compile time using templates
"TMP moves runtime costs to compile time, but can make compilation slow"
Tag Dispatch
Overload resolution technique using empty types as discriminators
"Tag dispatch is cleaner than SFINAE for simple template overloading"