Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La /Zc:templateScope opción del compilador habilita comprobaciones del comportamiento estándar de C++ en torno al sombreado de parámetros de plantilla.
Sintaxis
/Zc:templateScope[-]
Comentarios
El estándar de C++ no permite la reutilización del nombre de un parámetro de plantilla (o sombra) para otra declaración dentro del ámbito de la plantilla. La /Zc:templateScope opción del compilador habilita una comprobación de errores para este sombreado.
La /Zc:templateScope opción es nueva en la versión preliminar 17.5 de Visual Studio 2022. La opción está desactivada de forma predeterminada incluso cuando el código se compila mediante la /permissive- opción (o una opción que implica /permissive-, como /std:c++20 o /std:c++latest). Para habilitar la comprobación de errores, debe agregar /Zc:templateScope explícitamente a la línea de comandos del compilador. Para deshabilitar explícitamente la comprobación, use la /Zc:templateScope- opción .
Ejemplo
En /Zc:templateScope, este código de ejemplo genera un error:
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
*/
Para establecer esta opción del compilador en Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.
Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.
En Opciones adicionales, agregue
/Zc:templateScopeo/Zc:templateScope-. Haga clic en Aceptar o en Aplicar para guardar los cambios.
Consulte también
/Zc (Conformidad)
/permissive-
/std (Especificar la versión estándar del lenguaje)