Created on 2017-03-02.00:00:00 last changed 39 months ago
The bulleted list of 188.8.131.52 [over.ics.rank] paragraph 3 consists of a logic ladder of the form “A is better than B if [some predicate relating A to B], or, if not that, ...” For example, bullet 3.1 says,
List-initialization sequence L1 is a better conversion sequence than list-initialization sequence L2 if
L1 converts to std::initializer_list<X> for some X and L2 does not, or, if not that,
L1 converts to type “array of N1 T”, L2 converts to type “array of N2 T”, and N1 is smaller than N2 ,
The intent is not to fall into the array case if L2 converts to std::initializer_list<X> and L1 does not — i.e., the inverse predicate holds — but that intent is not well reflected in the actual wording.