Skip to content

Subject: Opaque types, typedefs, and contract identifiers

A typedef's underlying type, an opaque type's hidden field, a pimpl alias, or a stable numeric/macro identifier (a serialization tag, a public macro or header constant) changes -- the contract was the name staying stable, not any particular layout.

9 case(s). ← back to all subjects

Cases

Case Title Verdict Category
case28_typedef_opaque Typedef and Opaque Type Changes 🔴 BREAKING Breaking
case62_type_field_added_compatible Type Field Added (Compatible — Opaque Struct) 🟢 COMPATIBLE Addition (Compatible)
case73_typedef_underlying_changed Typedef Underlying Type Changed 🔴 BREAKING Breaking
case80_pimpl_shared_to_unique Pimpl Alias Switched from shared_ptr to unique_ptr 🔴 BREAKING Breaking
case81_serialization_tag_reassigned Serialization Tag ID Reassigned 🔴 BREAKING Breaking
case95_allocator_nested_typedef_removed Allocator Nested-Typedef Removed 🔴 BREAKING Breaking
case124_header_constant_value_changed Header Constant Value Changed 🟠 API_BREAK API Break
case156_public_macro_removed _public_macro_removed — Public macro removed 🟠 API_BREAK API Break
case158_public_typedef_removed Public Typedef Removed 🟠 API_BREAK API Break