cpp/utility/variant/emplace

Creates a new value in-place, in an existing object

@1@ Equivalent to, where is the zero-based index of  in. @2@ Equivalent to, where is the zero-based index of  in. @3@ First, destroys the currently contained value (if any). Then direct-initializes the contained value as if constructing a value of type with the arguments. If an exception is thrown, may become valueless_by_exception. @4@ First, destroys the currently contained value (if any). Then direct-initializes the contained value as if constructing a value of type with the arguments. If an exception is thrown, may become valueless_by_exception.
 * It is a compile-time error if is not less than.
 * It is a compile-time error if is not less than.
 * It is a compile-time error if is not less than.
 * It is a compile-time error if is not less than.

Return value
A reference to the new contained value.

Exceptions
@1-4@ Any exception thrown during the initialization of the contained value.