Initializer List Ctor

Julius Witte julius.witte@iwr.uni-heidelberg.de
Tue Sep 5 13:06:00 GMT 2017


In a class such as this one:

#include <initializer_list>
class A
{
public:
   A(int i, double d){}
   A(std::initializer_list<double> l){}
};

why an instantiation with curly braces as this one

int main()
{
   A a{2,2.} ;
}

shall default to the initializer list constructor?

I understand why a call like "A a{2.,2.}" would default to it,

but in my eyes it would make more sense to default

to the first constructor when the types match it exactly.

-- 
Julius Witte
Mathematical Methods for Simulation (Head: Prof. G. Kanschat)
Interdisciplinary Center for Scientific Computing (IWR)
Heidelberg University
Room 1.235, INF 205, 69120 Heidelberg, Germany
Web: http://www.mathsim.eu



More information about the Gcc-help mailing list