voidify
template< class T >
void* /*voidify*/( T& obj ) noexcept;
|
(설명 전용*) (constexpr; C++17부터) |
|
의 주소를 반환합니다 obj (암시적으로 void*로 변환됨).
매개변수
| obj | - | 주소가 취해질 객체 |
반환값
|
& obj |
(C++11 이전) |
|
std:: addressof ( obj ) |
(C++11 이후) |
참고
이 설명 전용 함수 템플릿은 P0896R4에 의해 도입되었습니다. 이 템플릿은 특수화된 <memory>알고리즘의 효과를 설명하는 데 사용됩니다. 결과 포인터는 placement-params로 배치(placement) new표현식의 일부로 사용됩니다.
초기에는 반환 값이 const_cast<void*>(static_cast<const volatile void*>(std::addressof(obj)))이었으며, 이는 const 정확성을 위반합니다. 명시적 캐스트는 LWG 이슈 3870의 해결로 제거되었고, 남은 변환은 void*로의 암시적 변환뿐입니다.
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 3870 | C++98 | 명시적 캐스트가 const 정확성을 깨뜨렸음 | 해당 캐스트들을 제거함 |
참고 항목
(C++20) |
주어진 주소에 객체를 생성합니다 (함수 템플릿 & 알고리즘 함수 객체) |
(C++20) |
|
| 객체 범위를 초기화되지 않은 메모리 영역에 복사합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
(C++11) |
여러 객체를 초기화되지 않은 메모리 영역에 복사합니다 (함수 템플릿 & 알고리즘 함수 객체) |
(C++20) |
|
| 객체를 범위로 지정된 초기화되지 않은 메모리 영역에 복사합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
| 객체를 시작 위치와 개수로 지정된 초기화되지 않은 메모리 영역에 복사합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
(C++17) |
객체 범위를 초기화되지 않은 메모리 영역으로 이동합니다 (함수 템플릿 & 알고리즘 함수 객체) |
(C++20) |
|
(C++17) |
여러 객체를 초기화되지 않은 메모리 영역으로 이동합니다 (함수 템플릿 & 알고리즘 함수 객체) |
(C++20) |
| 객체를 생성합니다 기본 초기화 를 통해 범위로 지정된 초기화되지 않은 메모리 영역에 (함수 템플릿 & 알고리즘 함수 객체) | |
| 객체를 생성합니다 기본 초기화 를 통해 시작 위치와 개수로 지정된 초기화되지 않은 메모리 영역에 (함수 템플릿 & 알고리즘 함수 객체) | |
| 객체를 생성합니다 값 초기화 를 통해 범위로 지정된 초기화되지 않은 메모리 영역에 (함수 템플릿 & 알고리즘 함수 객체) | |
| 객체를 생성합니다 값 초기화 를 통해 시작 위치와 개수로 지정된 초기화되지 않은 메모리 영역에 (함수 템플릿 & 알고리즘 함수 객체) | |