Namespaces
Variants

std::experimental::optional<T>:: emplace

From cppreference.net
template < class ... Args >
void emplace ( Args && ... args ) ;
(라이브러리 fundamentals TS)
template < class U, class ... Args >
void emplace ( std:: initializer_list < U > ilist, Args && ... args ) ;
(라이브러리 fundamentals TS)

포함된 값을 제자리에서 생성합니다. 호출 전에 * this 가 이미 값을 포함하고 있는 경우, 포함된 값은 해당 소멸자를 호출하여 파괴됩니다.

1) 포함된 값을 직접 초기화 (단, 직접 목록 초기화는 제외)를 통해 std:: forward < Args > ( args ) ... 를 매개변수로 사용하여 초기화합니다.
2) 포함된 값을 ilist, std:: forward < Args > ( args ) ... 를 매개변수로 하여 해당 생성자를 호출하여 초기화합니다. 이 오버로드는 std:: is_constructible < T, std:: initializer_list < U > & , Args && ... > :: value true 인 경우에만 오버로드 해결에 참여합니다.

목차

매개변수

args... - 생성자에 전달할 인수들
ilist - 생성자에 전달할 초기화 리스트
타입 요구사항
-
T Args... 로부터 생성 가능해야 함
-
T std::initializer_list Args... 로부터 생성 가능해야 함

반환값

(없음)

예외

T 의 선택된 생성자에 의해 발생하는 모든 예외. 예외가 발생하면, * this 는 이 호출 이후 값을 포함하지 않습니다(이전에 포함된 값이 있었다면 파괴되었습니다).

참고 항목

내용을 할당
(public member function)