경고 C26406
원시 포인터
owner<T>
를 (r.3)에 할당하지 마세요.
이 경고는 C++ 핵심 지침에서 R.3을 적용합니다. 자세한 내용은 C++ 핵심 지침 R.3을 참조하세요.
설명
소유자는 할당 또는 다른 소유자로부터 초기화됩니다. 이 경고는 원시 포인터의 값을 소유자 포인터에 할당할 때 발생합니다. 원시 포인터는 소유권 이전을 보장하지 않습니다. 원래 소유자는 여전히 리소스를 보유하고 릴리스를 시도할 수 있습니다. 소유자의 값을 원시 포인터에 할당해도 됩니다. 원시 포인터는 리소스에 액세스하는 데 유효한 클라이언트이지만 관리하지는 않습니다.
코드 분석 이름: DONT_ASSIGN_RAW_TO_OWNER
예시
개체 주소 사용:
이 샘플에서는 소유자 포인터socket
에 대한 주소의 defaultSocket
소유권을 할당하려고 시도합니다.
gsl::owner<Socket*> socket = defaultSocket ? &defaultSocket : new Socket(); // C26406