Compartir a través de


Errores del compilador de C3000 a C3099

En los artículos de esta sección de la documentación se explican un subconjunto de los mensajes de error generados por el compilador.

Importante

Las herramientas de compilación y los compiladores de Visual Studio pueden notificar muchas clases de errores y advertencias. Después de encontrar un error o una advertencia, las herramientas de compilación pueden realizar suposiciones sobre la intención del código e intentar continuar, por lo que pueden notificar más problemas al mismo tiempo. Si las herramientas hacen una suposición incorrecta, es posible que los errores o advertencias posteriores no se apliquen al proyecto. Cuando corrija problemas en el proyecto, empiece siempre por el primer error o advertencia notificados y recompile a menudo. Una corrección puede hacer que desaparezcan muchos errores posteriores.

Para obtener ayuda con un mensaje de diagnóstico concreto en Visual Studio, seleccione la ventana Salida y pulse la tecla F1. Visual Studio abre la página de documentación para ese error, si existe. También puede usar la herramienta de búsqueda en la parte superior de la página para buscar artículos sobre advertencias o errores específicos. O bien examine la lista de errores y advertencias por herramienta y escriba en la tabla de contenido de esa página.

Nota:

No se documentan todos los errores o advertencias de Visual Studio. En muchos casos, el mensaje de diagnóstico proporciona toda la información disponible. Si ha llegado a esta página cuando ha usado F1 y cree que el mensaje de error o advertencia necesita una explicación adicional, háganoslo saber. Puede usar los botones de comentarios de esta página para notificar un problema de documentación en GitHub. Si cree que el error o la advertencia son incorrectos o ha encontrado otro problema con el conjunto de herramientas, notifique un problema de producto en el sitio de Developer Community. También puede enviar comentarios y notificar errores en el IDE. En Visual Studio, vaya a la barra de menús y seleccione Ayuda > Enviar comentarios > Notificar un problema, o bien envíe una sugerencia desde Ayuda > Enviar comentarios > Enviar una sugerencia. Se han creado algunos temas de error del compilador que el compilador no emite y ahora se redirigen a esta página, alternativamente.

Puede encontrar ayuda adicional sobre errores y advertencias en los foros de Preguntas y respuestas de Microsoft Learn. O bien busque el número de error o advertencia en el sitio de Developer Community de Visual Studio C++. También puede buscar soluciones en Stack Overflow.

Para obtener vínculos a ayuda adicional y recursos de la comunidad, consulte Ayuda y comunidad de Visual C++.

Mensajes de error

Error Mensaje
Error del compilador C3000 'symbol': el uso de una plantilla de clase requiere la lista de argumentos de plantilla. No se permite la deducción de argumentos en un miembro de datos no estático.
Error del compilador C3001 'message': se esperaba un nombre de directiva de OpenMP.
Error del compilador C3002 'name1 name2': varios nombres de la directiva OpenMP
Error del compilador C3003 'directive': nombre de directiva de OpenMP no permitido después de las cláusulas de la directiva.
Error del compilador C3004 'clause': cláusula no válida en la directiva 'directive' de OpenMP.
Error del compilador C3005 'message': se encontró un token inesperado en la directiva 'directive' de OpenMP.
Error del compilador C3006 'clause': falta un argumento esperado en la cláusula de la directiva 'directive' de OpenMP.
Error del compilador C3007 'clause': la cláusula de la directiva 'directive' de OpenMP no toma un argumento.
Error del compilador C3008 'argument': falta el elemento de cierre ')' en el argumento en la directiva 'directive' en OpenMP.
Error del compilador C3009 'label': no se permiten saltos dentro de un bloque estructurado de OpenMP.
Error del compilador C3010 'label': no se permiten saltos fuera de un bloque estructurado de OpenMP.
Error del compilador C3011 no se permiten ensamblados alineados directamente dentro de una región paralela
Error del compilador C3012 'function': función intrínseca no permitida directamente dentro de una región paralela.
Error del compilador C3013 'clause': la cláusula solamente puede aparecer una vez en la directiva 'directive' de OpenMP.
Error del compilador C3014 se esperaba un bucle for después de la directiva 'directive' de OpenMP
Error del compilador C3015 la forma de la inicialización de la instrucción 'for' de OpenMP no es adecuada
Error del compilador C3016 'identifier': la variable de índice de la instrucción 'for' de OpenMP debe tener un tipo entero con signo.
Error del compilador C3017 la forma de la prueba de terminación de la instrucción 'for' de OpenMP no es adecuada
Error del compilador C3018 'identifier': el incremento o la prueba 'for' de OpenMP debe utilizar la variable de índice 'variable'.
Error del compilador C3019 la forma del incremento de la instrucción 'for' de OpenMP no es adecuada
Error del compilador C3020 'variable': la variable de índice del bucle 'for' de OpenMP no se puede modificar en el cuerpo del bucle.
Error del compilador C3021 'argument': argumento vacío en la directiva 'directive' de OpenMP.
Error del compilador C3022 'directive': tipo de programación no válida de 'directive' en la directiva de OpenMP 'directive'.
Error del compilador C3023 'argument': se encontró un token inesperado en el argumento para la cláusula 'directive' de OpenMP.
Error del compilador C3024 'schedule(runtime)': expresión chunk_size no permitida.
Error del compilador C3025 'clause': se esperaba una expresión integral.
Error del compilador C3026 'clause': la expresión constante debe ser positiva.
Error del compilador C3027 'clause': se esperaba una expresión aritmética o de puntero.
Error del compilador C3028 'member': solamente se puede utilizar una variable o miembro de datos estático en una cláusula de uso compartido de datos.
Error del compilador C3029 'symbol': solamente puede aparecer una vez en cláusulas de uso compartido de datos de una directiva de OpenMP.
Error del compilador C3030 'identifier': la variable en la cláusula o directiva 'directive' no puede tener tipo de referencia.
Error del compilador C3031 'identifier': la variable de la cláusula 'reduction' debe tener un tipo aritmético escalar.
Error del compilador C3032 'identifier': la variable en la cláusula 'clause' no puede tener un tipo 'type' incompleto.
Error del compilador C3033 'identifier': la variable de la cláusula 'clause' no puede tener un tipo calificado constante.
Error del compilador C3034 La directiva 'directive' de OpenMP no puede anidarse directamente dentro de la directiva 'directive'.
Error del compilador C3035 La directiva 'ordered' de OpenMP se debe enlazar directamente a una directiva 'for' o 'parallel for' con la cláusula 'ordered'
Error del compilador C3036 'clause': token de operador no válido en la cláusula 'reduction' de OpenMP.
Error del compilador C3037 'identifier': la variable de la cláusula 'clause' se debe compartir en el contexto envolvente.
Error del compilador C3038 'identifier': la variable de la cláusula 'private' no puede ser una variable de reducción en el contexto envolvente.
Error del compilador C3039 'identifier': la variable de índice de la instrucción 'for' de OpenMP no puede ser una variable de reducción.
Error del compilador C3040 'identifier': el tipo de variable de la cláusula 'reduction' no es compatible con el operador de reducción 'operator'.
Error del compilador C3041 'identifier': la variable de la cláusula 'copyprivate' debe ser privada en el contexto envolvente.
Error del compilador C3042 Las cláusulas 'copyprivate' y 'nowait' no pueden aparecer juntas en la directiva 'directive' de OpenMP.
Error del compilador C3043 la directiva 'critical' de OpenMP no se puede anidar en una directiva 'critical' con el mismo nombre
Error del compilador C3044 'section': solamente se permite si se anida directamente bajo una directiva 'sections' de OpenMP.
Error del compilador C3045 Se esperaba una instrucción compuesta después de la directiva 'sections' de OpenMP. Falta '{'.
Error del compilador C3046 Falta el bloque estructurado en la región '#pragma omp sections' de OpenMP
Error del compilador C3047 El bloque estructurado en la región 'sections' de OpenMP debe ir precedido de '#pragma omp section' (obsoleto en Visual Studio 2022).
Error del compilador C3048 la forma de la expresión que va después de '#pragma omp atomic' no es adecuada
Error del compilador C3049 'argument': argumento no válido en la cláusula 'default' de OpenMP.
Error del compilador C3050 'class': una clase ref no puede heredar de 'identifier'.
Error del compilador C3051 Obsoleto.
Error del compilador C3052 'identifier': la variable no aparece en la cláusula de uso compartido de datos bajo una cláusula default(none).
Error del compilador C3053 'identifier': 'threadprivate' solo tiene valor válido para elementos de datos globales o estáticos.
Error del compilador C3054 '#pragma omp parallel' actualmente es incompatible en una función o clase genérica (obsoleto en Visual Studio 2022).
Error del compilador C3055 'identifier': no se puede hacer referencia al símbolo antes de que se use en la directiva 'threadprivate'.
Error del compilador C3056 'identifier': el símbolo no está en el mismo ámbito de la directiva 'threadprivate'.
Error del compilador C3057 'identifier': la inicialización dinámica de los símbolos 'threadprivate' no se admite actualmente.
Error del compilador C3058 'identifier': símbolo no declarado como 'threadprivate' antes de utilizarse en la cláusula 'copyin'.
Error del compilador C3059 'identifier': el símbolo 'threadprivate' no se puede usar en la cláusula 'clause'.
Error del compilador C3060 'identifier': una función friend no se puede definir dentro de una clase mediante un nombre completo (solamente se puede declarar).
Error del compilador C3061 operador 'operator': no se permite en la enumeración 'type' con el tipo subyacente 'type'.
Error del compilador C3062 'identifier': el enumerador requiere un valor porque el tipo subyacente es 'type'.
Error del compilador C3063 operador 'operator': todos los operandos deben tener el mismo tipo de enumeración.
Error del compilador C3064 'identifier': debe ser un tipo simple o resolverse en uno.
Error del compilador C3065 no se permite la declaración de propiedad en un ámbito que no es de clase
Error del compilador C3066 hay varias formas mediante las que se puede llamar a un objeto de este tipo con estos argumentos
Error del compilador C3067 No se puede usar una lista de inicializadores con el operador integrado[].
Error del compilador C3068 'identifier': una función 'naked' no puede contener objetos que requerirían desenredo si se produjera una excepción de C++.
Error del compilador C3069 operador 'operator': no se permite para el tipo de enumeración.
Error del compilador C3070 'identifier': la propiedad no tiene un método 'set'.
Error del compilador C3071 El operador 'operador' solamente se puede aplicar a una instancia de una clase ref o a un tipo de valor.
Error del compilador C3072 el operador 'operator' no se puede aplicar a una instancia de clase ref. Utilice el operador '%' unario para convertir una instancia de una clase ref en un tipo de identificador.
Error del compilador C3073 'identifier': la clase ref no tiene un constructor de copia definido por el usuario.
Error del compilador C3074 No se puede inicializar una matriz con un inicializador entre paréntesis.
Error del compilador C3075 'identifier': no puede insertar una instancia de un tipo de referencia 'type' en un tipo de valor.
Error del compilador C3076 'identifier': no puede insertar una instancia de un tipo de referencia 'type' en un tipo nativo.
Error del compilador C3077 'identifier': un finalizador solamente puede ser miembro de un tipo de referencia.
Error del compilador C3078 Se debe especificar el tamaño de la matriz en nuevas expresiones.
Error del compilador C3079 No se puede usar una lista de inicializadores como operando derecho de este operador de asignaciones.
Error del compilador C3080 'finalizer': un finalizador no puede tener un especificador de clase de almacenamiento.
Error del compilador C3081 Obsoleto.
Error del compilador C3082 Obsoleto.
Error del compilador C3083 'identifier': el símbolo situado a la izquierda de '::' debe ser un tipo.
Error del compilador C3084 'identifier': un destructor o finalizador no puede ser 'keyword'.
Error del compilador C3085 'identifier': un constructor no puede ser 'keyword'.
Error del compilador C3086 no se encuentra 'std::initializer_list': debe utilizar #include <initializer_list>
Error del compilador C3087 'identifier': la llamada de 'declaration' ya inicializa este miembro.
Error del compilador C3088 'class': el constructor del atributo debe tener argumentos formales con nombre.
Error del compilador C3089 'identifier': el nombre de parámetro no coincide con ningún nombre del miembro de datos.
Error del compilador C3090 'class': la clase de atributos no puede ser una plantilla.
Error del compilador C3091 'class': la clase de atributos no puede tener clases base.
Error del compilador C3092 'class': el miembro de clase de atributos no puede ser un campo de bits, 'static' ni 'const'.
Error del compilador C3093 'type': tipo no permitido para el miembro de clase de atributos 'member'
Error del compilador C3094 'attribute': uso anónimo no permitido.
Error del compilador C3095 'attribute': no se puede repetir el atributo.
Error del compilador C3096 'attribute': el atributo solamente se permite en miembros de datos de clases de atributos.
Error del compilador C3097 'attribute': el ámbito del atributo debe ser 'assembly:' o 'module:'.
Error del compilador C3098 'identifier': el atributo no tiene constructores definidos por el usuario.
Error del compilador C3099 'keyword': use [System::AttributeUsageAttribute]/[Windows::Foundation::Metadata::AttributeUsageAttribute] para atributos administrados o WinRT.

Consulte también

Advertencias y errores de las herramientas de compilación y del compilador de C/C++
Errores del compilador de C2000 a C3999 y de C7000 a C7999