/Zc:templateScope
(템플릿 매개 변수 섀도 확인)
/Zc:templateScope
컴파일러 옵션을 사용하면 템플릿 매개 변수의 그림자와 관련된 표준 C++ 동작을 검사할 수 있습니다.
구문
/Zc:templateScope
[-
]
설명
C++ 표준은 템플릿 범위 내의 다른 선언에 템플릿 매개 변수의 이름(또는 그림자)을 다시 사용할 수 없습니다. /Zc:templateScope
컴파일러 옵션을 사용하면 이러한 섀도에 대한 오류 검사를 사용할 수 있습니다.
Visual /Zc:templateScope
Studio 2022 버전 17.5 미리 보기 1의 새로운 옵션입니다. 이 옵션은 코드가 옵션(또는 같은 의미 또는 /permissive-
/std:c++20
/std:c++latest
)을 사용하여 /permissive-
컴파일되는 경우에도 기본적으로 해제됩니다. 오류 검사를 사용하도록 설정하려면 컴파일러 명령줄에 명시적으로 추가 /Zc:templateScope
해야 합니다. 확인을 명시적으로 사용하지 않도록 설정하려면 이 /Zc:templateScope-
옵션을 사용합니다.
예시
아래에서 /Zc:templateScope
이 샘플 코드는 오류를 생성합니다.
template<typename T>
void f(T&& t) {
int T = 13;
}
/* Output:
t.cpp(3): error C7527: 'T': a template parameter name cannot be reused within its scope
*/
Visual Studio에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.
구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.
추가 옵션에서
/Zc:templateScope
또는/Zc:templateScope-
을(를) 추가합니다. 확인을 선택하거나 적용을 선택하여 변경 내용을 저장합니다.