constructor opcional con initializer_list

¿Cuál es el propósito de este constructor especial que toma la lista de inicializadores? ¿Alguien puede dar un ejemplo de cuándo esto será útil?

template <class U, class... Args>
constexpr explicit optional(in_place_t, initializer_list<U> il, Args&&... args);

¿Cómo es lo anterior diferente de esto?

template <class... Args> 
constexpr explicit optional(in_place_t, Args&&... args); 

Árbitro:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3793.html#optional.object.ctor

PD No estoy seguro de si usar la etiqueta c ++ 14 o c ++ 1z. Creo que debería haber una etiqueta para la especificación técnica de C ++

Respuestas a la pregunta(1)

Su respuesta a la pregunta