C++ CPP key terms
C++ CPP · Get comfortable with the vocabulary.
- Capacity
The container’s relevant allocated element capacity under its contract, distinct from the number of currently constructed elements reported by size.
- Half-open range
A range including its beginning and excluding its end, whose end iterator is a boundary and not automatically a dereferenceable element.
- Iterator invalidation
The loss of a previously usable iterator/reference relationship after an operation under the actual container contract, requiring renewed validation before use.
- Strict weak ordering
A comparator relationship satisfying the relevant consistency properties required by ordered algorithms/containers, rather than a casually chosen less-than-or-equal test.
- Logical new end
The returned boundary of retained algorithm results after operations such as remove, which does not itself reduce the container’s element count.
- Template deduction
The inference of template arguments according to declared parameter relationships and language rules, without inventing arbitrary conversions to reconcile every mixed call.
- Value capture
A lambda arrangement storing the relevant captured value in the closure object, whose later mutable state need not change the original variable.
- Move cast
The value-category conversion associated with std::move, which enables relevant overload selection but does not by itself execute a resource transfer.
- Stream state
The flags, formatting and error conditions affecting subsequent supported input/output operations, which require interpretation alongside types and supplied data.
- Bare rethrow
A throw expression without an operand inside a handler that rethrows the currently handled exception rather than constructing a sliced base copy.
- Sequencing
The language-defined relationship among evaluations and side effects, distinct from operator precedence or the visual left-to-right layout of an expression.
- Integer division
A defined integral arithmetic operation whose fractional part is discarded under its language rules, distinct from floating-point division performed after a conversion.
- Short-circuit evaluation
The conditional skipping of a logical operator’s right operand when the left operand already determines the result under the relevant language rules.
- Overload resolution
The selection among candidate function declarations using argument and conversion rules, not merely choosing a function with a preferred return type.
- Undefined behavior
A condition for which the language imposes no defined behavioral requirements, which cannot be repaired by reporting a plausible output from one run.
- Object lifetime
The period in which a particular object exists under the language rules, which a retained pointer or allocated storage does not automatically extend.
- RAII
An ownership technique tying resource management to an object’s lifetime and destructor behavior, supporting appropriate cleanup on scope exit and exception unwinding.
- Virtual destructor
A destructor supporting the relevant dynamic destruction behavior through a base interface in ordinary polymorphic deletion, distinct from another unrelated virtual method.
- Dangling pointer
A pointer value that no longer designates a live usable object in its relevant context, despite retaining an address-like representation.
- Encapsulation
The organization of object state and operations behind an interface and access rules, without turning class access control into encryption or process isolation.