Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

256
Views
Microsoft C/C++: ¿cuál es la definición de implementación wrt de "conformidad estricta"?

Contexto:

/Za, /Ze (Deshabilitar extensiones de idioma) :

... el compilador C se ajusta estrictamente al estándar C89/C90

/permisivo- (Conformidad con los estándares) :

... y establece las opciones del compilador /Zc para una conformidad estricta

Mejoras de conformidad con C++, cambios de comportamiento y correcciones de errores en Visual Studio 2019 :

... Se puede especificar /permisivo para desactivar el modo de conformidad estricta en el compilador.

La segunda opción está destinada a desactivar el modo de conformidad estricta...

reloj :

Tenga en cuenta que esto no es estrictamente conforme con ISO C99...

Tutorial: Compile un programa en C en la línea de comando :

MSVC es compatible con los estándares ANSI C89 e ISO C99, pero no los cumple estrictamente.

Pregunta: ¿Cuál es la definición de "conformidad estricta"? ¿Fue inventado por Microsoft?

Nota: los estándares C (n2596.pdf) y C++ (n4849.pdf) no utilizan el término "conformidad estricta" / "conformidad estricta" aplicado a la implementación. La implementación es conforme o no conforme. Sin graduaciones.

UPD. Mi conjetura: bajo "conformidad estricta" (wrt a la implementación) Microsoft significa "implementación conforme sin soporte de ninguna extensión".

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Una parte clave de su confusión es que /Za y / Ze están en desuso y no se han actualizado en mucho tiempo. Se introdujo para ANSI 98 y no ha cambiado desde entonces. No use esos interruptores e ignore cualquier referencia a ellos en los documentos.

El modificador de "conformidad" de Visual C++ moderno es /permissive- y los diversos modificadores /Zc , en combinación con /std .

Las opciones actuales "más conformes" son:

  • C++20 es: /std:c++20
  • C++17 es: /std:c++17 /permissive- /Zc:preprocessor .
  • C++14 es: /std:c++14 /permissive- /Zc:preprocessor .
  • C11 es: /std:c11
  • C17 es: /std:c17

https://devblogs.microsoft.com/cppblog/msvc-cpp20-and-the-std-cpp20-switch/

Una pequeña parte de los problemas de conformidad con Visual C++ está relacionada con el preprocesador

https://devblogs.microsoft.com/cppblog/anunciando-full-support-for-acc-conformant-preprocessor-in-msvc/

https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-llegando-a-msvc/

Para ver el desglose característica por característica, consulte Microsoft Docs

over 4 years ago · Santiago Trujillo Report

0

El estándar C11 define un programa y una implementación estrictamente conformes en la sección 4, párrafos 5-7, de la siguiente manera:

5 Un programa estrictamente conforme debe usar solo las características del lenguaje y la biblioteca especificadas en esta Norma Internacional. No producirá resultados que dependan de ningún comportamiento no especificado, indefinido o definido por la implementación, y no deberá exceder ningún límite mínimo de implementación.

6 Las dos formas de implementación conforme son hospedadas e independientes. Una implementación alojada conforme aceptará cualquier programa estrictamente conforme. Una implementación independiente conforme aceptará cualquier programa estrictamente conforme en el que el uso de las características especificadas en la cláusula de la biblioteca (cláusula 7) se limite al contenido de los encabezados estándar <float.h>, <iso646.h>, <limits .h>, <stdalign.h>, <stdarg.h>, <stdbool.h>, <stddef.h>, <stdint.h> y <stdnoreturn.h>. Una implementación conforme puede tener extensiones (incluidas funciones de biblioteca adicionales), siempre que no alteren el comportamiento de ningún programa estrictamente conforme.

7 Un programa conforme es aquel que es aceptable para una implementación conforme.

Si bien los términos implementación estrictamente conforme y conformidad estricta no aparecen aquí, se puede entender que significan una implementación (en un modo dado) que solo aceptará un programa estrictamente conforme (o más exactamente, una implementación que no admite funciones que no especificado en la norma).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!