C++ CPA study materials
C++ CPA study resources

C++ CPA key terms

C++ CPA · Get comfortable with the vocabulary.

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.

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.