Null others choice for array aggregates 87-06-18 AI-00293/05 1 | !standard 04.03 (06) 87-06-18 AI-00293/05 | !class confirmation 84-10-16 | !status approved by WG9/AJPO 87-06-17 | !status approved by Director, AJPO 87-06-17 | !status approved by WG9 87-05-29 !status approved by Ada Board (22-0-0) 87-02-19 !status panel/committee-approved 86-10-15 (reviewed) !status panel/committee-approved (5-0-0) 86-09-11 (pending editorial review) !status work-item 86-04-04 !status received 84-10-16 !references 83-00458 !topic Null others choice for array aggregates !summary 86-09-12 The others choice in an array aggregate can specify no components. !question 86-09-15 4.3.2(3) says: A named association of an array aggregate is only allowed to have a choice that is not static, or likewise a choice that is a null range, if the aggregate includes a single component association and this component association has a single choice. Can an association with the choice 'others' specify no components since it is not a range and hence not a "null range"? For example: type T is (RED, BLUE, GREEN); type A is array(T) of BOOLEAN; function FUNC return A is begin return (T => TRUE, others => FALSE); -- legal? (yes) end FUNC; Is the others in the aggregate legal? !response 87-02-23 The others choice in an array aggregate can specify no components. 4.3(5) states: ... The choice others is only allowed in a component association if the association appears last and has this single choice; it specifies all remaining components, if any. The "if any" implies an others choice is acceptable even if it specifies no components, so the use of others in the aggregate is legal.