Default Arguments
Default arguments allow function parameters to have default values when not explicitly provided by the caller.
Overloading
Function overloading allows multiple functions with the same name but different parameters. The compiler selects the best match based on arguments.
Function Declarations
A function declaration (or prototype) specifies a function's name, return type, and parameters without providing the implementation.
Inline
inline suggests the compiler replace function calls with function body, eliminating call overhead. Modern compilers decide automatically.
constexpr
constexpr indicates values or functions can be evaluated at compile-time, enabling compile-time computation and optimization.
noexcept
noexcept specifies that a function won't throw exceptions, enabling optimizations and stronger guarantees.
Calling Conventions
Calling conventions define how functions receive parameters and return values at the assembly level - register usage, stack cleanup, and parameter passing order.