[over.match.list]

# 12 Overloading [[over]](./#over)

## 12.2 Overload resolution [[over.match]](over.match#list)

### 12.2.2 Candidate functions and argument lists [[over.match.funcs]](over.match.funcs#over.match.list)

#### 12.2.2.8 Initialization by list-initialization [over.match.list]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/overloading.tex#L1186)

When objects of non-aggregate class type T are
list-initialized such that [[dcl.init.list]](dcl.init.list "9.5.5 List-initialization") specifies that overload resolution
is performed according to the rules in this subclause
or when forming a list-initialization sequence according to [[over.ics.list]](over.ics.list "12.2.4.2.6 List-initialization sequence"),
overload resolution selects the constructor in two phases:

- [(1.1)](#1.1)

  If the initializer list is not empty or T has no default constructor,
overload resolution is first performed
where the candidate functions are the initializer-list constructors ([[dcl.init.list]](dcl.init.list "9.5.5 List-initialization"))
of the class T and
the argument list consists of the initializer list as a single argument[.](#1.1.sentence-1)

- [(1.2)](#1.2)

  Otherwise, or if no viable initializer-list constructor is found,
overload resolution is
performed again, where the candidate functions are all the constructors of
the class T and
the argument list consists of the elements of the initializer list[.](#1.2.sentence-1)

In copy-list-initialization, if an explicit constructor is
chosen, the initialization is ill-formed[.](#1.sentence-2)

[*Note [1](#note-1)*:

This differs from other situations ([[over.match.ctor]](over.match.ctor "12.2.2.4 Initialization by constructor"), [[over.match.copy]](over.match.copy "12.2.2.5 Copy-initialization of class by user-defined conversion")),
where only non-explicit constructors are considered for copy-initialization[.](#1.sentence-3)

This restriction only
applies if this initialization is part of the final result of overload
resolution[.](#1.sentence-4)

â *end note*]
