Compartir a través de


Errores del compilador de C2900 a C2999

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 C2900 "declarator": las plantillas de función miembro de las clases WinRT deben ser 'private', 'internal' o 'protected private'
Error del compilador C2901 "identifier": una interfaz o un delegado genéricos no pueden ser públicos
Error del compilador C2902 "token": token inesperado después de "template/generic", identificador esperado (obsoleto en Visual Studio 2022).
Error del compilador C2903 "identifier": el símbolo no es una clase de template/generic ni una función de template/generic
Error del compilador C2904 "identifier": el nombre ya se usó para una plantilla en el ámbito actual
Error del compilador C2905 Obsoleto.
Error del compilador C2906 "template": la especialización explícita requiere "plantilla <>"
Error del compilador C2907 el argumento de registro "number" no especifica un número de registro válido
Error del compilador C2908 especialización explícita; ya se ha creado una instancia de "template"
Error del compilador C2909 "identifier": la creación de instancias explícita de la plantilla de función requiere un tipo de valor devuelto
Error del compilador C2910 "function": no puede estar especializada de forma explícita
Error del compilador C2911 "member": no se puede declarar ni definir en el ámbito actual
Error del compilador C2912 la especialización explícita; "declaration" no es una especialización de una plantilla de función
Error del compilador C2913 la especialización explícita; "declaration" no es una especialización de una plantilla de clase
Error del compilador C2914 "identifier": no se puede deducir el argumento de template/generic porque el argumento de función es ambiguo
Error del compilador C2915 "identifier": "type" no se pueden usar operadores en la superficie publicada de un tipo WinRT. Use "Platform::Object^" en su lugar para pasar este tipo
Error del compilador C2916 "identifier": [FlagsAttribute] (solo) se debe especificar en una enumeración pública con un tipo subyacente "unsigned int"
Error del compilador C2917 "identifier": parámetro de plantilla no válido (obsoleto en Visual Studio 2022).
Error del compilador C2918 "identifier": Las propiedades indizadas no se pueden usar en la superficie publicada de un tipo WinRT
Error del compilador C2919 "type": no se pueden usar operadores en la superficie publicada de un tipo WinRT
Error del compilador C2920 redefinición: "type": la clase template/generic ya se ha declarado como "declaration"
Error del compilador C2921 redefinición: "type": la clase template/generic ya se vuelve a declarar como "declaration"
Error del compilador C2922 "interface": una interfaz de WinRT no puede contener miembros estáticos
Error del compilador C2923 "type': 'identifier" no es un argumento de tipo template/generic válido para el parámetro "parameter"
Error del compilador C2924 el argumento de la rutina __declspec(interrupción) no se encuentra en R2
Error del compilador C2925 la rutina __declspec(interrupción) no puede utilizar punto flotante
Error del compilador C2926 "identifier": no se permite un inicializador de miembro predeterminado para un miembro de una estructura anónima dentro de una unión
Error del compilador C2927 "identifier": para llamar a una plantilla de función se debe utilizar, al menos, un argumento
Error del compilador C2928 creación de instancias explícita; "identifier" no es una función ni un miembro de datos estático de la clase de plantilla "class"
Error del compilador C2929 "declarator": creación de instancias explícita; no se puede forzar y suprimir de forma explícita la creación de instancias de miembros de clase de plantilla
Error del compilador C2930 "class": template-id/generic-id se volvió a definir como un enumerador de "enum identifier"
Error del compilador C2931 "class1": template-id/generic-id se volvió a definir como una función miembro de "class2" (obsoleta en Visual Studio 2022).
Error del compilador C2932 "type": template-id/generic-id se volvió a definir como un miembro de datos de "identifier" (obsoleta en Visual Studio 2022).
Error del compilador C2933 "type": template-id/generic-id se volvió a definir como un miembro de typedef de "identifier" (obsoleta en Visual Studio 2022).
Error del compilador C2934 "type": template-id/generic-id se volvió a definir como un "item" de "identifier" (obsoleta en Visual Studio 2022).
Error del compilador C2935 "type": template-id/generic-id se volvió a definir como una función global (obsoleta en Visual Studio 2022).
Error del compilador C2936 "type": template-id/generic-id se volvió a definir como una variable de datos global (obsoleta en Visual Studio 2022).
Error del compilador C2937 "type": template-id/generic-id se volvió a definir como una typedef global (obsoleta en Visual Studio 2022).
Error del compilador C2938 "identifier": no se pudo especializar la plantilla de alias
Error del compilador C2939 "type": template-id/generic-id se volvió a definir como una variable de datos local (obsoleta en Visual Studio 2022).
Error del compilador C2940 "type": template-id/generic-id se volvió a definir como una typedef local (obsoleta en Visual Studio 2022).
Error del compilador C2941 "type": template-id/generic-id se volvió a definir como un "item" local (obsoleta en Visual Studio 2022).
Error del compilador C2942 "type": template-id/generic-id se volvió a definir como un argumento formal de una función (obsoleta en Visual Studio 2022).
Error del compilador C2943 "type": template-id/generic-id se volvió a definir como un argumento de tipo de una plantilla (obsoleta en Visual Studio 2022).
Error del compilador C2944 "type": template-id/generic-id se volvió a definir como un argumento de valor de una plantilla (obsoleta en Visual Studio 2022).
Error del compilador C2945 la creación de instancias explícita no hace referencia a una especialización de clase de plantilla
Error del compilador C2946 Creación de una instancia explícita; "type" no es una especialización de clase de plantilla
Error del compilador C2947 se esperaba que ">" finalizase los argumentos de plantilla, se ha encontrado "token"
Error del compilador C2948 Creación de una instancia explícita; el especificador de clase de almacenamiento "specifier" no está permitido en la especialización
Error del compilador C2949 thread_local no es compatible con /kernel
Error del compilador C2950 Obsoleto.
Error del compilador C2951 las declaraciones de template/generic solo se permiten en un ámbito global, de espacio de nombres o de clase
Error del compilador C2952 "declaration": falta la declaración de template/generic en la lista de parámetros de template/generic
Error del compilador C2953 "type": ya se ha definido la plantilla de clase
Error del compilador C2954 el argumento de palabra de instrucción no está en el intervalo
Error del compilador C2955 "type": el uso de la clase template/generic requiere una lista de argumentos de template/generic
Error del compilador C2956 La función de desasignación "function" habitual debe elegirse como función de desasignación de ubicación.
Error del compilador C2957 "token": delimitador izquierdo no válido: se esperaba "<"
Error del compilador C2958 el delimitador izquierdo encontrado en "file(line_number)" no tiene una correspondencia correcta
Error del compilador C2959 una clase genérica o función no puede ser miembro de una plantilla
Error del compilador C2960 Obsoleto.
Error del compilador C2961 "function": Creaciones de instancias explícitas incoherentes, la creación de una instancia explícita anterior no especificó "argument"
Error del compilador C2962 error de sintaxis: "token": se esperaba que la definición de función miembro de clase de plantilla finalizase con "}"
Error del compilador C2963 Obsoleto.
Error del compilador C2964 Obsoleto.
Error del compilador C2965 __declspec(specifier) no se admite con /kernel
Error del compilador C2966 "identifier1": debe tener el mismo __declspec(code_seg(...)) que su clase base "identifier2" (obsoleta en Visual Studio 2022).
Error del compilador C2967 "identifier": una función virtual invalidada debe tener la misma __declspec(code_seg(...)) que una función virtual invalidada (obsoleta en Visual Studio 2022).
Error del compilador C2968 "identifier": declaración de alias recursiva
Error del compilador C2969 error de sintaxis: "token": se esperaba que la definición de función miembro finalizase con "}"
Error del compilador C2970 "type": parámetro de plantilla "parameter": "argument": no se puede usar una expresión que requiere objetos con vinculación interna como argumento sin tipo definido
Error del compilador C2971 "type": parámetro de plantilla "parameter": "argument": no se puede usar una variable con duración de almacenamiento no estática como argumento sin tipo definido
Error del compilador C2972 "type": parámetro de plantilla "parameter": el tipo de argumento sin tipo no es válido
Error del compilador C2973 "template": argumento de plantilla no válido "number"
Error del compilador C2974 "type": argumento de template/generic no válido para "parameter"; se esperaba un tipo
Error del compilador C2975 "type": argumento de plantilla no válido para "parameter"; se esperaba una expresión constante en tiempo de compilación
Error del compilador C2976 "type": no hay suficientes argumentos de template/generic
Error del compilador C2977 "type": demasiados argumentos de template/generic
Error del compilador C2978 error de sintaxis: se esperaba "keyword1" o "keyword2"; se encontró el tipo "type"; no se admiten parámetros sin tipo en genéricos
Error del compilador C2979 no se admite especializaciones explícitas en genéricos
Error del compilador C2980 El control de excepciones de C++ no se admite con /kernel
Error del compilador C2981 la forma dinámica de "keyword" no se admite con /kernel
Error del compilador C2982 "declaration": se usa una __declspec(code_seg(...)) distinta: era "identifier1" ahora es "identifier2"
Error del compilador C2983 "declaration": todas las declaraciones deben tener un __declspec(code_seg(...)) idéntico
Error del compilador C2984 Obsoleto.
Error del compilador C2985 "argument": el argumento para __declspec(code_seg(...)) debe ser una sección de texto
Error del compilador C2986 "identifier": __declspec(code_seg(...)) solamente se puede aplicar a una clase o una función
Error del compilador C2987 una declaración no puede tener tanto __declspec(code_seg('identifier')) como __declspec(code_seg('value'))
Error del compilador C2988 declaración o definición de plantilla irreconocible
Error del compilador C2989 "class": template/generic de clase ya se ha declarado como template/generic de no clase
Error del compilador C2990 "class": template/generic de no clase ya se ha declarado como template/generic de clase
Error del compilador C2991 nueva definición del parámetro de template/generic "parameter"
Error del compilador C2992 "class": falta o no es válida la lista de parámetros de template/generic
Error del compilador C2993 "type": tipo no válido para el parámetro de plantilla "identifier" sin tipo definido
Error del compilador C2994 clase sin nombre en la lista de parámetros de plantilla
Error del compilador C2995 "declaration": ya se ha definido la plantilla de función
Error del compilador C2996 "function": definición de plantilla de función recursiva
Error del compilador C2997 "function": no se puede deducir el límite de la matriz desde un inicializador de miembro predeterminado
Error del compilador C2998 "declarator": no puede ser una definición de plantilla

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