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