Otherwise, if T is a specialization of std::initializer_list, a new std::initializer_list object of the same type is constructed and used to direct-initialize or copy-initialize the object of type T, depending on context.

The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions.

Andernfalls werden die constuctors der T betrachtet, in zwei Phasen:

Original:

Otherwise, the constuctors of T are considered, in two phases:

The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions.

All constructors that take std::initializer_list as the only argument, or as the first argument if the remaining arguments have default values, are examined, and matched by overload resolution against a single argument of type std::initializer_list

The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions.

If the previous stage does not produce a match, all constructors of T participate in overload resolution against the set of arguments that consists of the elements of the braced-init-list, with the restriction that only narrowing conversions are allowed. If this stage produces an explicit constructor as the best match for a copy-list-initialization, compilation fails (note, in simple copy-initialization, explicit constructors are not considered at all)

The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions.

conversion from integer or unscoped enumeration type to integer type that cannot represent all values of the original, except where source is a constant expression whose value can be stored exactly in the target type

The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions.

Braced-init-list is not an expression and has no type on its own: for example, when calling a function template, braced-init-list argument cannot be used for template type deduction. A special exception is made for the keyword auto, which deduces any braced-init-list as std::initializer_list.

The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions.