std::allocator<T>::construct
출처: ko.cppreference.net
| 헤더에 정의됨 <memory>
|
||
void construct( pointer p, const_reference val );
|
(1) | (C++11까지) |
template< class U, class... Args >
void construct( U* p, Args&&... args );
|
(2) | (C++11부터) (C++17에서 비권장됨) (C++20에서 제거됨) |
전역 placement-new를 사용하여, T 타입의 객체를 p가 가리키는 할당된 초기화되지 않은 저장소에 생성합니다.
1)
::new((void*)p) T(val)을 호출합니다.2)
::new((void*)p) U(std::forward<Args>(args)...)을 호출합니다.매개변수
| p | - | 할당되었으나 초기화되지 않은 저장 공간을 가리키는 포인터 |
| val | - | 복사 생성자 인수로 사용할 값 |
| args... | - | 사용할 생성자 인수들 |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 402 | C++98 | T :: operator new 가 존재할 경우, 프로그램이 비정형일 수 있음 | 전역 replacement-new를 대신 사용함 |
참고 항목
|
[static]
|
할당된 저장 공간에 객체를 생성함
(함수 템플릿) |
|
(C++20)
|
주어진 주소에 객체를 생성함
(함수 템플릿) |
|
할당 함수들
(함수) |