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