다음을 통해 공유


/Zc:hiddenFriend (표준 C++ 숨겨진 친구 규칙 적용)

컴파일러가 숨겨진 friend 함수 또는 함수 템플릿의 C++ 표준 처리를 준수하도록 지정합니다.

구문

/Zc:hiddenFriend[-]

설명

/Zc:hiddenFriend 옵션은 옵션 동작의 하위 집합을 /permissive- 사용하도록 설정합니다. 숨겨진 친구의 표준을 준수하도록 컴파일러에 지시합니다. 컴파일러에는 바깥쪽 클래스 형식의 명시적 인스턴스 또는 템플릿 매개 변수에 대한 ADL(인수 종속 조회 )에 숨겨진 친구만 포함됩니다. 이 제한을 사용하면 숨겨진 친구를 사용하여 형식에 대한 작업이 암시적 변환에 적용되지 않도록 할 수 있습니다. 이 옵션은 달리 사용할 /permissive-수 없는 코드에서 빌드 속도를 향상시킬 수 있습니다.

숨겨진 친구는 friend 클래스 또는 클래스 템플릿 정의 내에서만 선언된 함수 또는 함수 템플릿입니다. 기본적으로 Microsoft C++ 컴파일러는 숨겨진 friend 선언을 어디에서나 오버로드 확인 후보로 제거하지 않습니다. 이 레거시 동작은 숨겨진 friend 함수를 더 많은 컨텍스트에서 가능한 후보로 포함시켜 컴파일러의 속도를 늦출 수 있습니다.

표준 C++ 숨겨진 친구 동작은 기본적으로 ./permissive- 옵션을 지정할 때 레거시 숨겨진 friend 동작을 /permissive- 지정하려면 .를 사용합니다 /Zc:hiddenFriend-. C++20 모듈을 사용하려면 표준 숨겨진 친구 동작이 필요합니다.

/Zc:hiddenFriend 옵션은 Visual Studio 2019 버전 16.4부터 사용할 수 있습니다.

지정할 /Zc:hiddenFriend때 컴파일러 동작의 예제는 숨겨진 친구 이름 조회 규칙을 참조 하세요.

Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.

  3. 추가 옵션 속성을 수정하여 포함 /Zc:hiddenFriend 하거나 /Zc:hiddenFriend- 선택한 다음 확인을 선택합니다.

참고 항목

/Zc(규칙)
/permissive-