Namespaces
Variants

voidify

From cppreference.net
Memory management library
voidify
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
template < class T >
void * voidify ( T & obj ) noexcept ;
( 설명 전용* )
(C++17부터 constexpr)

obj 의 주소를 반환합니다 ( void * 로 암시적으로 변환됨).

목차

매개변수

obj - 주소가 취해질 객체

반환값

& obj

(C++11 이전)

std:: addressof ( obj )

(C++11 이후)

참고 사항

이 설명 전용 함수는 P0896R4 에 의해 도입되었습니다. 이 함수는 초기화되지 않은 메모리 영역에서 객체를 생성하는 uninitialized memory algorithms 의 효과를 설명하는 데 사용됩니다. 결과 포인터는 placement new expression placement-params 로 사용됩니다.

초기에는 반환값이 const_cast < void * > ( static_cast < const volatile void * > ( std:: addressof ( obj ) ) ) 였는데, 이는 const-correctness를 위반합니다. LWG issue 3870 의 해결을 통해 명시적 캐스트들이 제거되었으며, 남은 유일한 변환은 void * 로의 암시적 변환뿐입니다.

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 3870 C++98 명시적 캐스트가 const 정확성을 깨뜨렸음 해당 캐스트들을 제거함

참고 항목

객체 범위를 초기화되지 않은 메모리 영역에 복사합니다
(함수 템플릿)
객체 범위를 초기화되지 않은 메모리 영역에 복사합니다
(알고리즘 함수 객체)
객체를 범위로 정의된 초기화되지 않은 메모리 영역에 복사합니다
(함수 템플릿)
객체를 범위로 정의된 초기화되지 않은 메모리 영역에 복사합니다
(알고리즘 함수 객체)
객체 범위를 초기화되지 않은 메모리 영역으로 이동합니다
(함수 템플릿)
객체 범위를 초기화되지 않은 메모리 영역으로 이동합니다
(알고리즘 함수 객체)
범위로 정의된 초기화되지 않은 메모리 영역에서 기본 초기화 를 통해 객체를 생성합니다
(함수 템플릿)
범위로 정의된 초기화되지 않은 메모리 영역에서 기본 초기화 를 통해 객체를 생성합니다
(알고리즘 함수 객체)
범위로 정의된 초기화되지 않은 메모리 영역에서 값 초기화 를 통해 객체를 생성합니다
(함수 템플릿)
범위로 정의된 초기화되지 않은 메모리 영역에서 값 초기화 를 통해 객체를 생성합니다
(알고리즘 함수 객체)
주어진 주소에 객체를 생성합니다
(함수 템플릿)
주어진 주소에 객체를 생성합니다
(알고리즘 함수 객체)