2016-11-09 8 views
1

특히 스마트 포인터, 약한 포인터에 대해 읽었습니다. 약한 포인터가 공유 포인터 같은 비슷한 get() 메서드를 가지고 있지 않다는 것을 알았습니다. 약한 포인터가 무엇을 가리키고 있는지 불확실하기 때문입니다. 그런 다음 Intellisence가 _Get() 메서드를 제안했음을 발견했습니다.std :: weak_ptr의 _Get 메서드는 무엇을하고 언제 사용해야합니까?

std :: weak_ptr의 _Get() 방법은 정확히 무엇이며 언제 사용해야합니까?

답변

1

밑줄 - 대문자 이름은 구현을 위해 예약되어 있습니다. 당신은 사용자로서, 그들을 사용하지 않아도됩니다. 또한 weak_ptr's interface에 나열되어 있지 않으므로이 코드에 따라 작성된 코드는 이식 할 수 없습니다.

무엇을하는지 : 그것은 아마도 어떤 도우미 기능입니다. 에 대한 구현 용으로 예약되었으므로을 사용하면 부 버전 사이에서도 변경 (또는 사라짐) 할 수 있기 때문에 더 깊이 파고 들지는 않습니다.

N4140 §는 17.6.4.3.2 [global.names] 이름과 기능 서명/1

특정 세트는 항상 에 구현 예약되어 있습니다 : - 이중 밑줄이 포함되어 각각의 이름을 __ 또는 밑줄 문자로 시작하는 대문자 문자 (2.12)은 모든 용도로 사용하기 위해 예약되어 있습니다.

+0

왜 함수가 공개입니까? – oddRaven

+0

@oddRaven 잘 모르겠습니다. 어쩌면 컴파일러와 함께 제공되는 표준 라이브러리에서 의미가있을 수 있습니다. 그래도 코드 완성 제안으로 표시해서는 안됩니다. – krzaq