Errores del compilador de C3400 a C3499
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 C3400 | dependencia de restricción circular que implica 'constraint1' y 'constraint2' |
Error del compilador C3401 | 'specifier': especificador de acceso al ensamblado no válido; solo se permite 'private' en las plantillas de clase. |
Error del compilador C3402 | 'function': no se puede resolver la sobrecarga, a excepción del ámbito actual. |
Error del compilador C3403 | thread_local no puede usarse con /clr:pure o /clr:safe |
Error del compilador C3404 | 'construct': error inesperado de sintaxis. |
Error del compilador C3405 | 'function': no se puede resolver la sobrecarga sin un descriptor completo. |
Error del compilador C3406 | 'keyword': no se puede utilizar en un especificador de tipo elaborado. |
Error del compilador C3407 | No se puede usar 'type' en este contexto. |
Error del compilador C3408 | 'attribute': no se permite el atributo en las definiciones de plantilla. |
Error del compilador C3409 | no se permite un bloque de atributos vacío |
Error del compilador C3410 | 'identifier': el tipo de la creación de una instancia explícita 'type' no coincide con el tipo de la plantilla variable 'type'. |
Error del compilador C3411 | 'type' no es válido como tamaño de una matriz porque no es un tipo entero. |
Error del compilador C3412 | 'specialization': no se puede especializar la plantilla en el ámbito actual. |
Error del compilador C3413 | 'template': creación de instancias explícitas no válida. |
Error del compilador C3414 | 'function': la función miembro importada no se puede definir. |
Error del compilador C3415 | Se encontraron varias secciones 'section' con atributos diferentes ('0xvalue'). |
Error del compilador C3416 | Obsoleto. |
Error del compilador C3417 | 'declarator': los tipos de valor no pueden contener funciones miembro especiales definidas por el usuario. |
Error del compilador C3418 | el especificador de acceso 'specifier' no se admite |
Error del compilador C3419 | Obsoleto. |
Error del compilador C3420 | 'function': un finalizador no puede ser virtual. |
Error del compilador C3421 | 'function': no se puede llamar al finalizador para esta clase porque es inaccesible o no existe. |
Error del compilador C3422 | 'declaration': tipos no coincidentes 'type' y 'type'. |
Error del compilador C3423 | Obsoleto. |
Error del compilador C3424 | 'type': no se permite una conversión de estilo de función en un tipo de matriz |
Error del compilador C3425 | no se puede iniciar un puntero a un objeto de tipo 'type' incompleto. |
Error del compilador C3426 | se puede iniciar un objeto de tipo 'type' incompleto |
Error del compilador C3427 | 'context': 'keyword' no se puese usar con layout_version(número) |
Error del compilador C3428 | 'context': 'keyword' solamente se puede aplicar a definiciones o declaraciones de clase. |
Error del compilador C3429 | 'context': 'keyword' no se puede aplicar a una unión. |
Error del compilador C3430 | una enumeración con ámbito debe tener un nombre |
Error del compilador C3431 | 'identifier': type1 no se puede volver a declarar como type2. |
Error del compilador C3432 | 'identifier': una declaración adelantada de una enumeración sin ámbito debe tener un tipo subyacente. |
Error del compilador C3433 | 'identifier': todas las declaraciones de una enumeración deben tener el mismo tipo subyacente, era 'type1' y ahora es 'type2'. |
Error del compilador C3434 | 'context': el valor del enumerador 'number' no se puede representar como 'type'. El valor es 'number'. |
Error del compilador C3435 | el juego de caracteres 'name' no es compatible. |
Error del compilador C3436 | #pragma setlocale no se admite si se ha especificado /source-charset, /execution-charset o /utf-8. |
Error del compilador C3437 | #pragma execution_character_set no se admite si se ha especificado /source-charset, /execution-charset o /utf-8. |
Error del compilador C3438 | 'context': 'value' no se puede aplicar a una clase administrada o WinRT |
Error del compilador C3439 | layout_version(número): número de versión no válido |
Error del compilador C3440 | 'declaration': layout_version(number) incompatible con una declaración anterior. |
Error del compilador C3441 | 'declaration': 'keyword' no se puede aplicar después de haber definido la clase. |
Error del compilador C3442 | Inicialización de varios miembros de unión: 'member1' y 'member2'. |
Error del compilador C3443 | El inicializador de miembro predeterminado para 'class' es recursivo. |
Error del compilador C3444 | La clase de agregado vacía 'class' se debe inicializar con '{}'. |
Error del compilador C3445 | la inicialización de lista de copia de 'tipo' no puede usar un constructor explícito |
Error del compilador C3446 | "class": no se permite un inicializador de miembro predeterminado para un miembro de una clase de valor |
Error del compilador C3447 | operand para el operador condicional ?: es del tipo 'void', pero other-operand no es una expresión throw ni de tipo 'void'. |
Error del compilador C3448 | el número de identificadores debe coincidir con el número de elementos de matriz o los miembros de una declaración de enlace estructurado. |
Error del compilador C3449 | el número de identificadores debe coincidir con el valor de std::tuple_size<type-name>::value en un enlace estructurado de tipo tupla. |
Error del compilador C3450 | 'type': no es un atributo; no puede especificar [System::AttributeUsageAttribute ]/[Windows::Foundation::Metadata::AttributeUsageAttribute]. |
Error del compilador C3451 | 'attribute': no se puede aplicar el atributo no administrado a 'type'. |
Error del compilador C3452 | miembro de lista de argumentos no constante |
Error del compilador C3453 | 'attribute': atributo no aplicado porque el calificador 'qualifier' no coincidía. |
Error del compilador C3454 | No se permite [attribute] en la declaración de clase |
Error del compilador C3455 | 'attribute': ninguno de los constructores de atributo coincidía con los argumentos. |
Error del compilador C3456 | [source-annotation-attribute] no permitido en la declaración de clase administrada o WinRT. |
Error del compilador C3457 | 'attribute': el atributo no admite argumentos sin nombre. |
Error del compilador C3458 | '[attribute]': atributo '[attribute]' ya especificado para 'identifier'. |
Error del compilador C3459 | '[attribute]': el atributo solamente se permite en el indizador de clase (propiedad indexada predeterminada). |
Error del compilador C3460 | 'type': solamente se puede reenviar un tipo definido por el usuario. |
Error del compilador C3461 | 'type: solamente se puede reenviar un tipo administrado o WinRT. |
Error del compilador C3462 | 'type': solamente se puede reenviar un tipo importado. |
Error del compilador C3463 | 'type': tipo no permitido en el atributo 'implements'. |
Error del compilador C3464 | 'type': no se puede reenviar un tipo anidado. |
Error del compilador C3465 | para usar el tipo 'type' debe hacer referencia al ensamblado 'assembly'. |
Error del compilador C3466 | 'type': no se puede reenviar una especialización de una clase genérica. |
Error del compilador C3467 | 'type': este tipo ya se ha reenviado. |
Error del compilador C3468 | 'type': solamente puede reenviar un tipo a un ensamblado:'identifier' no es un ensamblado. |
Error del compilador C3469 | 'type': no se puede reenviar una clase genérica. |
Error del compilador C3470 | 'class': una clase no puede tener un indexador (propiedad indexada predeterminada) y un operator []. |
Error del compilador C3471 | el nombre del nuevo módulo module-name (establecido en la línea de comandos) entra en conflicto con el nombre anterior module-name. |
Error del compilador C3472 | el nombre del archivo de salida filename (establecido en la línea de comandos) entra en conflicto con el nombre de archivo anterior filename |
Error del compilador C3473 | no se ha especificado ningún nombre de ruta o nombre de módulo de salida. |
Error del compilador C3474 | no se pudo abrir el archivo de salida 'filename'. |
Error del compilador C3475 | error de sintaxis en el archivo de entrada 'filename'. |
Error del compilador C3476 | no se pudo abrir el archivo 'filename' para la entrada. |
Error del compilador C3477 | una expresión lambda no puede aparecer en un contexto no evaluado. |
Error del compilador C3478 | 'identifier': una matriz no se puede capturar mediante copia. |
Error del compilador C3479 | no se admiten anotaciones SAL en expresiones lambda. |
Error del compilador C3480 | 'variable': una variable de captura lambda debe pertenecer al ámbito de una función de inclusión. |
Error del compilador C3481 | 'identifier': no se encuentra la variable de captura lambda. |
Error del compilador C3482 | 'this' solo se puede usar como captura lambda en una función miembro no estática |
Error del compilador C3483 | 'identifier' ya forma parte de la lista de capturas lambda. |
Error del compilador C3484 | error de sintaxis: se esperaba '->' antes del tipo de valor devuelto. |
Error del compilador C3485 | Una definición lambda no puede tener ningún calificador cv (obsoleto en Visual Studio 2022). |
Error del compilador C3486 | Un parámetro de una expresión lambda no puede tener un argumento predeterminado (obsoleto en Visual Studio 2022). |
Error del compilador C3487 | 'type': todas las expresiones return de una lambda deben tener el mismo tipo: antes era 'type'. |
Error del compilador C3488 | No se permite el uso de '&identifier' cuando el modo de captura predeterminado es por referencia |
Error del compilador C3489 | Se requiere '&identifier' cuando el modo de captura predeterminado es por copia |
Error del compilador C3490 | 'identifier' no se puede modificar porque se está accediendo a través de un objeto const. |
Error del compilador C3491 | 'identifier': una captura por copia no se puede modificar en una expresión lambda no mutable. |
Error del compilador C3492 | 'identifier': no se puede capturar un miembro de una unión anónima. |
Error del compilador C3493 | 'identifier' no se puede capturar de forma implícita porque no se ha especificado ningún modo de captura predeterminado. |
Error del compilador C3494 | 'this' no se puede capturar de forma explícita porque no lo permite un modo de captura envolvente. |
Error del compilador C3495 | 'identifier': el identificador en la captura debe ser una variable con una duración de almacenamiento automática declarada en el ámbito de alcance de la expresión lambda. |
Error del compilador C3496 | 'this' siempre se captura por valor: se ha omitido '&' |
Error del compilador C3497 | no puede construir una instancia de una expresión lambda. |
Error del compilador C3498 | 'identifier': no se puede capturar una variable que tiene un tipo administrado o WinRT. |
Error del compilador C3499 | una expresión lambda de la que se ha especificado que tiene un tipo de valor devuelto void no puede devolver un valor |
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