Direct Aggregate Initialisation
summary
C++20 lets aggregates be initialized with parentheses, enabling make_shared and emplace_back to perfect‑forward into aggregates and letting macros avoid commas-in-braces. Paren-init differs from brace-init: parens allow narrowing, parens do not perform brace elision for nested aggregates, and parens do not extend the lifetime of temporaries bound to reference members while braces do. Empty parens mean value‑initialization (zeroing), not aggregate initialization, which affects explicit constructors and copy‑list rules.
AI-written summary · about








