Compartir vía


Advertencias del compilador de Microsoft C/C++ C4800 a C4999

En los artículos de esta sección se describen los mensajes de advertencia del compilador de Microsoft C/C++ C4800 a C4999.

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 advertencia

Advertencia Mensaje
Advertencia del compilador (nivel 4, desactivada) C4800 Conversión implícita de "type" a bool. Posible pérdida de información
Advertencia del compilador C4801 No se puede comprobar la devolución por referencia: mensaje
Advertencia del compilador (nivel 1) C4803 "method": el método raise tiene una clase de almacenamiento distinta de la del evento, "event"
Advertencia del compilador (nivel 1) C4804 "operation": uso no seguro del tipo "bool" en la operación
Advertencia del compilador (nivel 1) C4805 "operation": combinación no segura del tipo "type1" y el tipo "type2" en la operación
Advertencia del compilador (nivel 1) C4806 "operation": operación no segura: ningún valor del tipo "type1" promovido al tipo "type2" puede igualar la constante proporcionada
Advertencia del compilador (nivel 1) C4807 "operation": combinación no segura del tipo "type1" y el campo de bits con signo de tipo "type2"
Advertencia del compilador (nivel 1) C4808 case "value" no es un valor válido para la condición switch de tipo "bool"
Advertencia del compilador (nivel 1) C4809 La instrucción switch tiene una etiqueta "default" redundante; se proporcionan todas las etiquetas "case" posibles
Advertencia del compilador (nivel 1) C4810 valor de pragma pack(show) == n
Advertencia del compilador (nivel 1) C4811 valor de pragma conform(forScope, show) == value
Advertencia del compilador (nivel 1) C4812 estilo de declaración obsoleto: use "new_syntax" en su lugar
Advertencia del compilador (nivel 1) C4813 "function": se debe haber declarado anteriormente una función friend de una clase local
Advertencia del compilador (nivel 4) C4815 "object name": la matriz de tamaño cero del objeto de pila no tendrá elementos (a menos que el objeto sea una función de agregado que se haya agregado inicializada)
Advertencia del compilador (nivel 4) C4816 "param": el parámetro tiene una matriz de tamaño cero que se truncará (a menos que el objeto se pase por referencia)
Advertencia del compilador (nivel 1) C4817 "member": uso no válido de "." para acceder a este miembro; el compilador lo reemplazó por "->"
Advertencia del compilador (nivel 1) C4819 El archivo contiene un carácter que no se puede representar en la página de códigos actual (número). Guarde el archivo en formato Unicode para evitar la pérdida de datos
Advertencia del compilador (nivel 4, desactivada) C4820 "bytes" bytes de relleno agregados después de la construcción "member_name"
Advertencia del compilador (nivel 1) C4821 No se puede determinar el tipo de codificación Unicode. Guarde el archivo con signatura (BOM)
Advertencia del compilador (nivel 1, desactivada) C4822 "member function": la función miembro de clase local no tiene cuerpo
Advertencia del compilador (nivel 3) C4823 "function": usa punteros anclados, pero la semántica de desenredado no está habilitada Considere la posibilidad de utilizar /EHa
Advertencia del compilador (nivel 2, desactivada) C4826 La conversión de "type1" a "type2" genera una extensión de signo. Esto puede provocar un comportamiento en tiempo de ejecución inesperado.
Advertencia del compilador (nivel 3) C4827 Un método "ToString' con 0 parámetros se debe marcar como virtual y override
Advertencia del compilador (nivel 1) C4828 El archivo contiene un carácter que comienza en el desplazamiento 0xHexOffset y que no es válido en el juego de caracteres del origen actual (página de códigos codepage).
Advertencia del compilador (nivel 1) C4829 Parámetros posiblemente incorrectos para la función main. Tenga en cuenta "int main(Platform::Array<Platform::String^>^ argv)"
Advertencia del compilador (nivel 1) C4834 se descarta el valor devuelto de la función con el atributo "nodiscard"
Advertencia del compilador (nivel 1) C4835 "variable": el inicializador de los datos exportados no se ejecutará hasta que el código administrado se ejecute en primer lugar en el ensamblado de host
Advertencia del compilador (nivel 4, desactivada) C4837 trígrafo detectado: "??character" reemplazado por "character"
Advertencia del compilador (nivel 1) C4838 la conversión de "type_1" a "type_2" requiere una conversión de restricción
Advertencia del compilador (nivel 3) C4839 uso no estándar de la clase "type" como argumento de una función variádica
Advertencia del compilador (nivel 4) C4840 uso no portable de la clase "type" como argumento de una función variádica
Advertencia del compilador (nivel 4, desactivada) C4841 extensión no estándar usada: designador de miembro compuesto utilizado en offsetof
Advertencia del compilador (nivel 4, desactivada) C4842 no se garantiza que el resultado de la propiedad "offsetof" aplicada a un tipo que usa la herencia múltiple sea consistente con las versiones del compilador
Advertencia del compilador (nivel 4) C4843 "type1": no se puede acceder a un controlador de excepciones de referencia a un tipo de función o matriz; use "type2" en su lugar
Advertencia del compilador (nivel 1) C4844 "export module module_name;" es ahora la sintaxis recomendada para declarar una interfaz de módulo
Advertencia del compilador (nivel 4) C4845 "__declspec(no_init_all)" se omite si no se especificó "/d1initall[0|1|2|3]" en la línea de comandos
Advertencia del compilador (nivel 4) C4846 "value" no es un argumento válido para "/d1initall": se omite la marca de la línea de comandos
Advertencia del compilador (nivel 4) C4847 "__declspec(no_init_all)" solo se puede aplicar a una función, un tipo de clase o una variable local: se omite
Advertencia del compilador (nivel 1) C4848 la compatibilidad con el atributo estándar "no_unique_address" en C ++ 17 y versiones anteriores es una extensión del proveedor
Advertencia del compilador (nivel 1) C4849 Cláusula "clause" de OpenMP omitida en la directiva "directive"
Advertencia del compilador (nivel 1, error) C4854 un puntero nulo desreferenciado de enlace para hacer referencia tiene un comportamiento indefinido
Advertencia del compilador (nivel 1, desactivada) C4855 la captura implícita de "this" a través de "[=]" está en desuso en "version"
Advertencia del compilador (nivel 4) C4856 "value" no es un argumento válido para "/d1initAll:FillPattern" (el valor debe estar entre 0 y 255). Se omite la marca de la línea de comandos
Advertencia del compilador (nivel 1) C4857 El modo C++/CLI no admite versiones de C++ más recientes que C++ 17; estableciendo lenguaje en /std:c++17
Advertencia del compilador (nivel 1) C4858 descartando el valor devuelto: nombre de la función
Advertencia del compilador (nivel 4) C4859 "value" no es un argumento válido para "/presetWarn": debe ser un valor decimal > 0. Se omite la marca de la línea de comandos
Advertencia del compilador (nivel 4) C4860 "object name": el compilador cero ha inicializado "number" bytes de almacenamiento
Advertencia del compilador (nivel 4) C4861 el compilador cero ha inicializado "número" bytes de almacenamiento
Advertencia del compilador (nivel 4) C4866 el compilador podría no exigir el orden de evaluación de izquierda a derecha para la llamada a operator_name
Advertencia del compilador (nivel 1, error) C4867 "function": falta la lista de argumentos de la llamada a la función; utilice "call" para crear un puntero al miembro
Advertencia del compilador (nivel 4) C4868 El compilador "file(line_number)" no puede aplicar el orden de evaluación de izquierda a derecha en la lista de inicialización entre llaves
Advertencia del compilador (nivel 3) C4869 "nodiscard" solo puede aplicarse a clases, enumeraciones y funciones
Advertencia del compilador (nivel 2) C4872 se detectó una división de punto flotante por cero al compilar el gráfico de llamadas para concurrency::parallel_for_each en: "location"
Advertencia del compilador (nivel 1) C4880 conversión de "const type_1" a "type_2": el desechar la declaración como const de un puntero o referencia puede dar lugar a un comportamiento no definido en una función con restricción de AMP
Advertencia del compilador (nivel 4) C4881 no se invocará al constructor o al destructor para la variable tile_static "variable-name"
Advertencia del compilador (nivel 1) C4882 la transmisión de objetos functor con operadores de llamada no constantes a concurrency::parallel_for_each está en desuso
Advertencia del compilador C4883 "function name": el tamaño de la función suprime las optimizaciones
Advertencia del compilador C4900 error de coincidencia de lenguaje intermedio entre "tool1" versión version1" y "tool2" versión "version2"
Advertencia del compilador (nivel 1, desactivada) C4905 conversión de literal de cadena de tipo ancho en "LPSTR"
Advertencia del compilador (nivel 1, desactivada) C4906 conversión de literal de cadena en "LPWSTR"
Advertencia del compilador (error) C4907 no se pueden especificar varias convenciones de llamada; se usará la última especificada
Advertencia del compilador (nivel 1) C4910 "<identifier>": "__declspec(dllexport)" y "extern" son incompatibles en una creación de una instancia explícita
Advertencia del compilador (nivel 1) C4912 "attribute": el atributo tiene un comportamiento indefinido en un tipo definido por el usuario anidado
Advertencia del compilador (nivel 4) C4913 el operador binario ',' definido por el usuario existe pero ninguna sobrecarga puede convertir todos los operandos; en su lugar, se utilizará el operador binario "," incorporado
Advertencia del compilador (nivel 1) C4916 para tener un dispid, "description": se debe introducir mediante una interfaz
Advertencia del compilador (nivel 1, desactivada) C4917 "declarator": un GUID se puede asociar únicamente a una clase, interfaz o espacio de nombres
Advertencia del compilador (nivel 4) C4918 "character": carácter no válido en la lista de optimizaciones de pragma
Advertencia del compilador (nivel 1) C4920 el miembro member_1=value_1 de la enumeración enum-name ya fue visto en la enumeraciónenum-name como miembro member_2=value_2
Advertencia del compilador (nivel 3) C4921 "description": el valor de atributo "attribute" no debe multiplicarse
Advertencia del compilador (nivel 1) C4925 "method": no se puede llamar al método dispinterface desde el script
Advertencia del compilador (nivel 1) C4926 "identifier": ya se definió el símbolo: se omitieron los atributos
Advertencia del compilador (nivel 1) C4927 conversión no válida; se aplicó implícitamente más de una conversión definida por el usuario
Advertencia del compilador (nivel 1, desactivada) C4928 inicialización de copia no válida; se aplicó implícitamente más de una conversión definida por el usuario
Advertencia del compilador (nivel 1) C4929 "file": la biblioteca de tipos contiene una unión; se omitirá el calificador "embedded_idl"
Advertencia del compilador (nivel 1) C4930 "prototype": no se ha llamado a la función prototipo (¿se pensó una definición de variable?)
Advertencia del compilador (nivel 4, desactivada) C4931 se supone que la biblioteca de tipos se compiló para punteros de número bits
Advertencia del compilador (nivel 4) C4932 __identifier(identifier) e __identifier(identifier) no se pueden distinguir
Advertencia del compilador (nivel 1) C4934 "__delegate(multicast)" está en desuso. Use "__delegate" en su lugar
Advertencia del compilador (nivel 1) C4935 especificador de acceso de ensamblado modificado desde "access"
Advertencia del compilador (nivel 1, error) C4936 __declspec se admite solamente cuando se compila con /clr o /clr:pure
Advertencia del compilador (nivel 4) C4937 "text1" y "text2" no se pueden distinguir como argumentos para "directive"
Advertencia del compilador (nivel 4) C4938 "var": la variable de reducción de punto flotante puede causar resultados incoherentes bajo /fp:strict o #pragma fenv_access
Advertencia del compilador C4939 #pragma vtordisp está en desuso y se quitará en una próxima versión de Visual C++
Advertencia del compilador (nivel 1) C4944 "symbol": no se puede importar un símbolo desde "assembly1": ya que "symbol" ya existe en el ámbito actual
Advertencia del compilador (nivel 1) C4945 "symbol": no se puede importar el símbolo de "assembly1": debido a que "symbol" ya se importó desde otro ensamblado "assembly2"
Advertencia del compilador (nivel 1, desactivada) C4946 reinterpret_cast se utilizó entre clases relacionadas: "class1" y "class2"
Advertencia del compilador (nivel 1) C4947 "type_or_member": marcado como obsoleto
Advertencia del compilador (nivel 2) C4948 el tipo de valor devuelto de "accessor" no coincide con el tipo del último parámetro de un establecedor correspondiente
Advertencia del compilador (niveles 1 y 4) C4949 las pragmas "managed" y "unmanaged" son significativas solo cuando se compilan con "/clr[:option]"
Advertencia del compilador (nivel 1, error) C4950 "type_or_member": marcado como obsoleto
Advertencia del compilador (nivel 1) C4951 "function" se ha editado desde que se recopilaron los datos de perfil; los datos de perfil de la función no se han utilizado
Advertencia del compilador (nivel 1) C4952 "función": no se encuentran datos de perfil en la base de datos del programa "pgd-file"
Advertencia del compilador (nivel 1) C4953 La inclusión en líneas de "function" se ha editado desde que los datos de perfil se recopilaron; datos de perfil no utilizados
Advertencia del compilador C4954 "function": sin perfil generado (contiene la expresión switch __int64)
Advertencia del compilador C4955 "import2": importación omitida; ya se importó desde "import1"
Advertencia del compilador (nivel 1, error) C4956 "type": este tipo no se puede comprobar
Advertencia del compilador (nivel 1, error) C4957 "cast": la conversión explícita de "cast_from" a "cast_to" no es comprobable
Advertencia del compilador (nivel 1, error) C4958 "operation": la aritmética de puntero no se puede comprobar
Advertencia del compilador (nivel 1, error) C4959 no se puede definir el tipo no administrado "type" en /clr:safe porque el acceso a sus miembros proporciona código que no se puede comprobar
Advertencia del compilador (nivel 4) C4960 "function" es demasiado grande para generar un perfil
Advertencia del compilador (nivel 1) C4961 No se combinó ningún dato de perfil en "pgd-file"; se han deshabilitado las optimizaciones guiadas por perfiles
Advertencia del compilador (nivel 4, desactivada) C4962 "function": se han deshabilitado las optimizaciones guiadas por perfiles porque generaban datos de perfil incoherentes
Advertencia del compilador (nivel 1) C4963 "description": no se encontró ningún perfil de datos; se utilizaron opciones de compilador diferentes en la compilación instrumentada
Advertencia del compilador (nivel 1) C4964 No se especificaron opciones de optimización; no se recopilará la información del perfil
Advertencia del compilador (nivel 1) C4965 conversión boxing implícita de entero 0; utilice nullptr o conversión explícita
Advertencia del compilador (nivel 1) C4966 "function" tiene una anotación __code_seg con nombre de segmento no admitido; se omite la anotación
Advertencia del compilador C4970 constructor delegado: objeto de destino omitido porque "type" es estático
Advertencia del compilador (nivel 1) C4971 Orden de argumentos: <target object>, <target function> para el constructor delegado está en desuso; utilice<target function>, <target object="">
Advertencia del compilador (nivel 1, error) C4972 No se puede comprobar la modificación o el tratamiento directo del resultado de una operación de conversión unbox como valor L
Advertencia del compilador (nivel 1) C4973 "symbol": marcado como en desuso
Advertencia del compilador (nivel 1) C4974 "symbol": marcado como en desuso
Advertencia del compilador (nivel 1) C4975 modopt "[modifier]" se ha omitido para el parámetro formal "parameter"
Advertencia del compilador (nivel 1) C4976 valor no válido "value" para "/W"; bajo la asunción de "1"
Advertencia del compilador (nivel 3) C4981 Warbird: La función "function" marcada como __forceinline no está insertada porque contiene semántica de excepción
Advertencia del compilador (nivel 3) C4983 Se ha omitido '/analyze:sarif:hashname' porque el argumento de '/analyze:log' es un archivo único en lugar de un directorio
Advertencia del compilador C4984 "if constexpr" es una extensión del lenguaje de C++17
Advertencia del compilador (nivel 4) C4985 "symbol_name": atributos no presentes en la declaración anterior
Advertencia del compilador (nivel 4, desactivada) C4986 "declaration": la especificación de la excepción no coincide con la declaración anterior
Advertencia del compilador (nivel 4, desactivada) C4987 se usó una extensión no estándar: "throw (...)"
Advertencia del compilador (nivel 4, desactivada) C4988 "variable": variable declarada fuera del ámbito de clase o función
Advertencia del compilador (nivel 4) C4989 "type": el tipo tiene definiciones en conflicto
Advertencia del compilador (nivel 3) C4990 Warbird: mensaje
Advertencia del compilador (nivel 3) C4991 Warbird: La función "function" marcada como __forceinline no está insertada porque el nivel de protección de la función insertada es mayor que el de su elemento primario
Advertencia del compilador (nivel 3) C4992 Warbird: La función "function-name" marcada como __forceinline no está insertada porque contiene un ensamblado insertado que no puede protegerse
Advertencia del compilador (nivel 3) C4995 "function": se marcó el nombre como #pragma en desuso
Advertencia del compilador (nivel 3) C4996 "deprecated-declaration": deprecation-message (o "se declaró en desuso")
Advertencia del compilador (nivel 1) C4997 "class": la coclase no implementa una pseudointerfaz o interfaz COM
Advertencia del compilador (nivel 1) C4998 ERROR EN LAS EXPECTATIVAS: expectation(value)

Consulte también

Advertencias y errores de las herramientas de compilación y del compilador de C/C++
Advertencias del compilador de C4000 a C5999