Errores del compilador de C2800 a C2899
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 C2800 | "operator operator" no se puede sobrecargar |
Error del compilador C2801 | "member" debe ser un miembro no estático |
Error del compilador C2802 | El miembro estático "operator operator" no tiene parámetros formales |
Error del compilador C2803 | "operator operator" debe tener al menos un parámetro formal de tipo de clase |
Error del compilador C2804 | "operator operator" binario tiene demasiados parámetros |
Error del compilador C2805 | "operator operator" binario tiene muy pocos parámetros |
Error del compilador C2806 | "operator operator" tiene demasiados parámetros formales |
Error del compilador C2807 | el segundo parámetro formal para el postfijo "operator operator" debe ser "int" |
Error del compilador C2808 | "operator operator" unario tiene demasiados parámetros formales |
Error del compilador C2809 | "operator operator" no tiene parámetros formales |
Error del compilador C2810 | "interface": una interfaz solo puede heredar de otra interfaz |
Error del compilador C2811 | "type1": no puede heredar de "type2", una clase ref solo puede heredar de una clase ref o una clase de interfaz |
Error del compilador C2812 | #import no se admite con /clr:pure y /clr:safe |
Error del compilador C2813 | No se admite #import con /MP |
Error del compilador C2814 | "member": un tipo nativo no se puede anidar dentro de un tipo administrado o WinRT "class" |
Error del compilador C2815 | "operator delete": el primer parámetro formal debe ser "void *", pero se usó "type" |
Error del compilador C2816 | falta la terminación ')' de la invocación de la macro como función "identifier" |
Error del compilador C2817 | el tipo de valor devuelto para "operator delete" debe ser "void" |
Error del compilador C2818 | la aplicación de "operator>-" sobrecargado es recursiva a través del tipo "class" |
Error del compilador C2819 | el tipo "class" no tiene un miembro sobrecargado "operator ->" |
Error del compilador C2820 | Obsoleto. |
Error del compilador C2821 | el primer parámetro formal para "operator new" debe ser "size_t" |
Error del compilador C2822 | no se admite desenredo local en esta plataforma |
Error del compilador C2823 | typedef template/generic no es válido |
Error del compilador C2824 | el tipo de valor devuelto para 'operator new' debe ser 'void *' |
Error del compilador C2825 | "identifier": debe ser una clase o un espacio de nombres cuando va seguido de "::" |
Error del compilador C2826 | Obsoleto. |
Error del compilador C2827 | "operator operator" no se puede invalidar globalmente con formato unario |
Error del compilador C2828 | "operator operator" no se puede invalidar globalmente con formato binario |
Error del compilador C2829 | "operator operator" no puede tener una lista de parámetros de variables |
Error del compilador C2830 | solo pueden tener valores predeterminados los parámetros de ubicación para 'operator new' |
Error del compilador C2831 | "operator operator" no puede tener parámetros predeterminados |
Error del compilador C2832 | "identifier": no se puede inicializar el valor de un tipo de referencia |
Error del compilador C2833 | "operator token" no es un operador o tipo reconocido |
Error del compilador C2834 | "operator operator" debe estar calificado globalmente (obsoleto en Visual Studio 2022). |
Error del compilador C2835 | la conversión definida por el usuario "type" no toma parámetros formales |
Error del compilador C2836 | "identifier": solo un miembro de datos no estático de una unión puede tener un inicializador de miembro predeterminado. |
Error del compilador C2837 | "function": no se pueden usar directivas OpenMP y #pragma loop(hint_parallel) en la misma función |
Error del compilador C2838 | "identifier": nombre calificado no válido en la declaración de miembro |
Error del compilador C2839 | tipo de valor devuelto "type" no válido para "operator ->" sobrecargado |
Error del compilador C2840 | argumento de palabra de instrucción no constante |
Error del compilador C2841 | argumento de registro no constante |
Error del compilador C2842 | "class": un tipo administrado o WinRT no puede definir su propio "operator new" u "operator delete" |
Error del compilador C2843 | "member": no se puede adquirir la dirección de un miembro de datos no estático o de un método de tipo administrado o WinRT |
Error del compilador C2844 | "identifier": no puede ser miembro de la interfaz "interface" |
Error del compilador C2845 | "type": no se puede realizar aritmética con punteros en este tipo |
Error del compilador C2846 | "interface": una interfaz no puede tener un constructor |
Error del compilador C2847 | no se puede aplicar sizeof al tipo administrado o WinRT "class" |
Error del compilador C2848 | "class": un tipo administrado o WinRT no puede ser miembro de una unión |
Error del compilador C2849 | "interface": una interfaz no puede tener un destructor |
Error del compilador C2850 | "construct": solo se permite en el ámbito de archivo; puede no estar en una construcción anidada |
Error del compilador C2851 | "enum": una enumeración pública de WinRT solo puede usar "int" o "unsigned int" como tipo base |
Error del compilador C2852 | "identifier": solo se pueden inicializar miembros de datos dentro de una clase |
Error del compilador C2853 | "identifier": un miembro de datos no estático no puede tener un tipo que contenga "auto" |
Error del compilador C2854 | error de sintaxis en #pragma hdrstop |
Error del compilador C2855 | opción de línea de comandos "option" incoherente con el encabezado precompilado |
Error del compilador C2856 | #pragma hdrstop no puede estar dentro de un bloque #if |
Error del compilador C2857 | no se encontró la instrucción "#include" especificada con la opción de la línea de comandos /Ycfilename en el archivo de código fuente |
Error del compilador C2858 | opción de línea de comandos "/Yc (/Fdfilename)" incoherente con el encabezado precompilado, que usó "/Fdfilename" (obsoleto en Visual Studio 2022). |
Error del compilador C2859 | filename no es el archivo filetype que se usó cuando se creó este encabezado precompilado. Vuelva a crear el encabezado precompilado. |
Error del compilador C2860 | 'void' no se puede usar como parámetro de función excepto '(void)' |
Error del compilador C2861 | "declaration": no se puede definir una función miembro de interfaz |
Error del compilador C2862 | "interface": una interfaz solo puede tener miembros públicos |
Error del compilador C2863 | "interface": una interfaz no puede tener amigos |
Error del compilador C2864 | "identifier": una variable de plantilla o miembro de datos estático con un inicializador en clase debe tener un tipo entero const no volátil |
Error del compilador C2865 | "operator": comparación no válida para el puntero o identificador de objeto |
Error del compilador C2866 | Obsoleto. |
Error del compilador C2867 | "identifier": no es un espacio de nombres |
Error del compilador C2868 | "identifier": sintaxis no válida para using-declaration; se esperaba un nombre completo |
Error del compilador C2869 | "identifier": ya se ha definido para que sea un espacio de nombres |
Error del compilador C2870 | "identifier": una definición de espacio de nombres debe aparecer en el ámbito de archivo o inmediatamente dentro de otra definición de espacio de nombres. |
Error del compilador C2871 | "identifier": no existe un espacio de nombres con este nombre |
Error del compilador C2872 | "identifier": símbolo ambiguo |
Error del compilador C2873 | "symbol": el símbolo no se puede usar en una declaración using |
Error del compilador C2874 | la declaración using provoca una declaración múltiple de "identifier" |
Error del compilador C2875 | la declaración using provoca una declaración múltiple de "class::identifier" (obsoleto en Visual Studio 2022). |
Error del compilador C2876 | "class::member": no todas las sobrecargas son accesibles |
Error del compilador C2877 | "member" no es accesible desde "class" |
Error del compilador C2878 | "identifier": no existe un espacio de nombres o una clase de este nombre |
Error del compilador C2879 | "identifier": solo se puede asignar un nombre alternativo a un espacio de nombres existente mediante una definición de alias de espacio de nombres |
Error del compilador C2880 | __swi o __hvc requiere una constante válida como primer argumento (número SWI) |
Error del compilador C2881 | "identifier": ya se usa como alias para "class" |
Error del compilador C2882 | "identifier": uso no válido del identificador de espacio de nombres en la expresión |
Error del compilador C2883 | "function": la declaración de función entra en conflicto con "identifier" introducido por la declaración using |
Error del compilador C2884 | El identificador "identifier": introducido mediante la declaración using entra en conflictos con la función local "function" |
Error del compilador C2885 | "class::identifier": no es una declaración using válida en el ámbito que no es de clase |
Error del compilador C2886 | "class::identifier": el símbolo no se puede usar en una declaración using de miembro |
Error del compilador C2887 | __swi o __hvc no puede tener más de cinco argumentos (número SWI, r0 - r3) |
Error del compilador C2888 | "identifier": no se puede definir el símbolo dentro del espacio de nombres "namespace" |
Error del compilador C2889 | "class": un tipo de clase administrada o WinRT no puede ser una clase base virtual |
Error del compilador C2890 | "class": una clase ref solo puede tener una clase base que no sea de interfaz |
Error del compilador C2891 | "parameter": no puede tomar la dirección de un parámetro de plantilla |
Error del compilador C2892 | la clase local no tendrá plantillas de miembro |
Error del compilador C2893 | No se pudo especializar la plantilla de función "template" |
Error del compilador C2894 | no se puede declarar una vinculación "C" para las plantillas |
Error del compilador C2895 | "declaration": no se puede crear una instancia explícita de una plantilla de función declarada con dllimport |
Error del compilador C2896 | "function1": no se puede usar la función template/generic "function2" como argumento de función (obsoleto en Visual Studio 2022). |
Error del compilador C2897 | un destructor o finalizador no puede ser una plantilla de función |
Error del compilador C2898 | "declaration": las plantillas de función miembro no pueden ser virtuales |
Error del compilador C2899 | Obsoleto. |
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