이제 많은 새로운 기능을 갖춘 C ++ 11이 있습니다. 흥미롭고 혼란스러운 것은 (적어도 나를 위해) new nullptr
입니다.
음, 더 이상 불쾌한 매크로가 필요하지 않습니다 NULL
.
int* x = nullptr;
myclass* obj = nullptr;
아직도, 나는 어떻게 nullptr
작동 하지 않습니다 . 예를 들어, Wikipedia article 은 다음과 같이 말합니다.
C ++ 11 은 고유 한 널 포인터 상수 (NULLptr)로 사용할 새 키워드 를 도입하여이를 정정합니다 . 그것은이다 형 nullptr_t 어떠한 포인터 또는 포인터 타입 투 부재 유형 암시 컨버터블 필적. bool을 제외하고는 암시 적으로 변환하거나 정수 유형과 비교할 수 없습니다.
키워드와 유형의 인스턴스는 어떻습니까?
또한 nullptr
좋은 예보다 우월한 또 다른 예가 0
있습니까 ( 위키 백과 하나 외에) ?
nullptr_t
, 하나 명의 멤버가 보장 nullptr
? 따라서 함수가 반환 nullptr_t
되면 컴파일러는 함수의 본문에 관계없이 반환되는 값을 이미 알고 있습니까?
std::nullptr_t
는 인스턴스화 할 수 있지만 nullptr
유형이로 정의되어 있으므로 모든 인스턴스가 동일합니다 typedef decltype(nullptr) nullptr_t
. 유형이 존재하는 주된 이유는 nullptr
필요한 경우 함수가 특히 오버로드되도록 잡을 수 있기 때문입니다. 예를 보려면 여기 를 참조 하십시오 .
nullptr
C ++ / CLI의 관리 핸들에 대한 널 참조를 나타내는 데에도 사용됩니다.