Compartir a través de


Errores del compilador de C2300 a C2399

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 C2300 'clase': la clase no tiene un destructor denominado '~clase'
Error del compilador C2301 el operando izquierdo de '>~identificador' debe señalar a class/struct/union
Error del compilador C2302 el operando izquierdo de '.~identifier' debe ser de tipo class/struct/union
Error del compilador C2303 No se puede usar el control de excepciones estructurado en una corrutina
Error del compilador C2304 No se puede usar 'palabra_clave' dentro de un bloque catch
Error del compilador C2305 'archivo' no contiene información de depuración para este módulo
Error del compilador C2306 'archivo' no contiene la información de depuración más reciente para este módulo
Error del compilador C2307 pragma directive se debe mover fuera de la función si la compilación incremental está habilitada
Error del compilador C2308 concatenación de cadenas no coincidentes
Error del compilador C2309 el controlador de tipo catch esperaba una declaración de excepción entre paréntesis
Error del compilador C2310 los controladores de tipo catch deben especificar un tipo
Error del compilador C2311 'tipo': ha sido detectada por '...' en la línea número
Error del compilador C2312 'tipo1': ha sido detectada por 'tipo2' en la línea número
Error del compilador C2313 'tipo1': ha sido detectada por la referencia ('tipo2') en la línea número
Error del compilador C2314 La palabra clave 'palabra_clave1' está en desuso: use 'palabra_clave2' en su lugar
Error del compilador C2315 'tipo1': la referencia ha sido detectada por 'tipo2' en la línea número
Error del compilador C2316 'tipo': no se puede detectar porque el destructor y/o el constructor de copia están inaccesibles o se eliminaron
Error del compilador C2317 El bloque 'try' que empieza en la línea 'número' no tiene controladores de tipo catch
Error del compilador C2318 no hay ningún bloque try asociado a este controlador de tipo catch
Error del compilador C2319 'try/catch' debe ir seguido de una instrucción compuesta. Falta '{'.
Error del compilador C2320 se esperaba ':' a continuación del especificador de acceso 'especificador'
Error del compilador C2321 'identificador' es una palabra clave y no se puede usar en este contexto
Error del compilador C2322 'identificador': la dirección de dllimport 'identificador' no es static
Error del compilador C2323 'identificador': las funciones new o delete de un operador no miembro no pueden declararse estáticas o en un espacio de nombres distinto del espacio de nombres global
Error del compilador C2324 'identificador': no se esperaba a la derecha de '::~'
Error del compilador C2325 'tipo1': tipo no esperado a la derecha de '->~': se esperaba 'tipo2'
Error del compilador C2326 'declarador': la función no puede tener acceso a 'identificador'
Error del compilador C2327 'identificador': no es un nombre de tipo, elemento estático o enumerador
Error del compilador C2328 'palabra_clave': aún no se admite la palabra clave
Error del compilador C2329 'identificador': __ptr64 no está disponible para punteros a funciones
Error del compilador C2330 'implementation_key( )' solo es válida en una región delimitada por #pragma start_map_region/stop_map_region
Error del compilador C2331 se ha definido el acceso a 'identificador' como 'accesibilidad1'; antes estaba definido como 'accesibilidad2'
Error del compilador C2332 'typedef': falta el nombre de etiqueta
Error del compilador C2333 'función': error en la declaración de función; se pasará por alto el cuerpo de la función
Error del compilador C2334 símbolos (token) inesperados delante de 'token'; se pasará por alto el cuerpo de función aparente
Error del compilador C2335 'identificador': no se puede producir un tipo en una lista de parámetros de función
Error del compilador C2336 'tipo': tipo no válido
Error del compilador C2337 'atributo': atributo no encontrado
Error del compilador C2338 (mensaje de error del proveedor externo)
Error del compilador C2339 'identificador': tipo no válido en IDL incrustado
Error del compilador C2340 'identificador': 'static' solo puede utilizarse dentro de una definición de clase
Error del compilador C2341 'sección': se debe definir el segmento utilizando #pragma data_seg, code_seg o una sección antes de su uso
Error del compilador C2342 Error de sintaxis: calificadores de tipo conflictivos
Error del compilador C2343 'sección': atributos de sección conflictivos
Error del compilador C2344 align(número): la alineación debe ser potencia de dos
Error del compilador C2345 align(número): valor de alineación no válido
Error del compilador C2346 'función' no se puede compilar como nativa: 'explicación'
Error del compilador C2347 Obsoleto.
Error del compilador C2348 'tipo': no es un agregado de estilo de C; no se puede exportar en IDL incrustado
Error del compilador C2349 'función' no se puede compilar como administrado: 'explicación'; utilice #pragma no administrado
Error del compilador C2350 'identificador' no es un miembro estático
Error del compilador C2351 sintaxis de inicialización del constructor de C++ obsoleta
Error del compilador C2352 'identificador': llamada no válida de función miembro no estática
Error del compilador C2353 no se permite la especificación de la excepción
Error del compilador C2354 Obsoleto.
Error del compilador C2355 'this': solo se puede hacer referencia a this en funciones miembro no estáticas o inicializadores de miembro de datos no estáticos
Error del compilador C2356 el segmento de inicialización no debe cambiar durante la unidad de traducción
Error del compilador C2357 'identificador': debe ser una función de tipo 'tipo'
Error del compilador C2358 'identificador': una propiedad estática no se puede definir fuera de una definición de clase
Error del compilador C2359 Obsoleto.
Error del compilador C2360 la inicialización de 'identificador' se omite en la etiqueta 'case'
Error del compilador C2361 la inicialización de 'identificador' se omite en la etiqueta 'default'
Error del compilador C2362 la inicialización de 'identificador' se omite en 'goto etiqueta'
Error del compilador C2363 la función de límite numérico intrínseco del compilador requiere un argumento literal de cadena
Error del compilador C2364 "tipo": tipo no válido para el atributo personalizado
Error del compilador C2365 'miembro1': nueva definición; la definición anterior era 'miembro2'
Error del compilador C2366 'identificador': nueva definición; especificadores implementation_key distintos
Error del compilador C2367 Obsoleto.
Error del compilador C2368 'identificador': nueva definición; especificadores de asignación distintos
Error del compilador C2369 'identificador': nueva definición; subíndices distintos
Error del compilador C2370 'identificador': nueva definición; clase de almacenamiento distinta
Error del compilador C2371 'identificador': nueva definición; tipos básicos distintos
Error del compilador C2372 'identificador': nueva definición; distintos tipos de direccionamiento indirecto
Error del compilador C2373 'identificador': nueva definición; modificadores de tipo distintos
Error del compilador C2374 'identificador': nueva definición; inicialización múltiple
Error del compilador C2375 'identificador': nueva definición; vinculación distinta
Error del compilador C2376 'identificador': nueva definición; distinta asignación con base
Error del compilador C2377 'identificador': nueva definición; typedef no se puede sobrecargar con ningún otro símbolo
Error del compilador C2378 'identificador': nueva definición; no se puede sobrecargar el símbolo con typedef
Error del compilador C2379 el parámetro formal número tiene un tipo diferente tras promoverlo
Error del compilador C2380 tipos que preceden a 'identificador' (¿constructor con tipo de valor devuelto o nueva definición no válida de nombre de clase actual?)
Error del compilador C2381 'identificador': nueva definición; __declspec(noreturn) o '[[noreturn]]' es diferente
Error del compilador C2382 'identificador': nueva definición; especificaciones de excepción diferentes
Error del compilador C2383 'identificador': no se permiten argumentos predeterminados en este símbolo
Error del compilador C2384 'miembro': no se puede aplicar thread_local o __declspec(thread) a un miembro de una clase administrada o de WinRT
Error del compilador C2385 acceso ambiguo de 'miembro'
Error del compilador C2386 'identificador': ya existe un símbolo con este nombre en el ámbito actual
Error del compilador C2387 'identificador': clase base ambigua
Error del compilador C2388 'identificador': un símbolo no se puede declarar con both __declspec(Appdomain) y __declspec(process)
Error del compilador C2389 'operador': operando no válido 'nullptr'
Error del compilador C2390 'identificador': clase de almacenamiento 'especificador' incorrecta
Error del compilador C2391 'identificador': 'friend' no se puede utilizar durante la definición de tipos
Error del compilador C2392 'miembro1': en los tipos administrados o de WinRT no se admiten los tipos de valores devueltos de covariante, de lo contrario 'miembro2' se invalidaría
Error del compilador C2393 'símbolo': el símbolo por Appdomain no se puede asignar en el segmento 'segmento'
Error del compilador C2394 'tipo::operator operador': operador CLR o de WinRT no válido. Al menos un parámetro debe ser de uno de los tipos siguientes: 'T^', 'T^%', 'T^', donde T = 'type'
Error del compilador C2395 'tipo::operator operador': operador CLR o de WinRT no válido. Al menos un parámetro debe ser de uno de los tipos siguientes: 'T', 'T%', 'T&', 'T^', 'T^%', 'T^&', donde T = 'type'
Error del compilador C2396 'tipo1::operator tipo2': función de conversión CLR o WinRT definida por el usuario no válida. Debe convertir de o a: 'T^', 'T^%', 'T^&', donde T = 'type1'
Error del compilador C2397 la conversión de 'tipo1' en 'tipo2' requiere una conversión de restricción
Error del compilador C2398 Elemento 'número': la conversión de 'tipo1' en 'tipo2' requiere una conversión de restricción
Error del compilador C2399 Obsoleto.

Consulte también

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