In C++ standard for std::array it says:
An array is an aggregate (8.5.1) that can be initialized with the syntax
array a = { initializer-list };
where initializer-list is a comma-separated list of up to N elements whose types are convertible to T.
Also it says that std::array is an aggregate type and its constructors are implicitly generated.
To initialize an std::array with an initializer list it must have a constructor taking an std::initializer_list as an argument.
Is a constructor that takes an std::initializer_list also implicitly generated for user-defined types or it is specific to std::array?
std::initializer_ist. One is a grammatical term, the other is a type. You have misquoted the typography of the standard!std::initializer_list. There should be a constructor takingstd::initializer_list.