Compartir a través de


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