c visual-studio c99

¿Cuál es el estado oficial del soporte C99 en VS2013?



visual-studio (1)

Hay algunos debates oficiales públicos sobre esto por parte de los desarrolladores de Microsoft, el C ++ Conformance Roadmap que dice:

Herb también anunció que, en respuesta a las solicitudes de los clientes, la versión RTM también incluirá algunas extensiones de lenguaje táctico C99 al compilar el código C, de modo que algunas bibliotecas comunitarias populares (incluida FFmpeg) ahora podrán compilarse con Visual C ++ 2013.

Así que esto tiene soporte oficial pero es estratégico, por lo que puedo decir de los siguientes artículos, más soporte tendrá que competir con otras prioridades.

Tenemos las entradas, correcciones y cambios de última hora de C ++ 11/14 STL en la entrada del blog VS 2013 de STL :

Además, algunas características de C99 Core Language se implementarán en 2013 RTM:

  • C99 _Bool

  • C99 literales compuestos

  • Inicializadores designados C99

  • Declaraciones de variables C99

y soporte de biblioteca C99 en la entrada del blog Visual Studio 2013 por Pat Brenner que se abre con:

En esta publicación de blog, quiero compartir información sobre el soporte de C99 agregado a la biblioteca de tiempo de ejecución de C en Visual Studio 2013.

y termina con:

Sabemos que esto no es un soporte completo para las funciones de la biblioteca C99. A nuestro entender, las piezas que faltan son estas:

  • Falta el encabezado tgmath.h El soporte del compilador de C es necesario para este encabezado. Tenga en cuenta que se agregó el encabezado ctgmath, esto es posible porque ese encabezado no requiere el encabezado tgmath.h, solo los encabezados ccomplex y cmath.
  • Falta el encabezado uchar.h Esto es de la C Unicode TR. Varios especificadores de formato en la familia printf aún no son compatibles.
  • Las funciones snprintf y snwprintf faltan en stdio.h y wchar.h.

lo que es algo más interesante ya que STL dirige activamente los comentarios al blog y son difíciles de resumir, pero podemos ver que las futuras adiciones dependerán de las prioridades de la competencia.

Gracias a cremno por señalar otra publicación de blog C Runtime (CRT) Características, correcciones y cambios de última hora en Visual Studio 14 CTP1 que dice:

En el CTP de Visual Studio "14", hemos implementado completamente la biblioteca estándar de C99, con la excepción de las características de la biblioteca que dependen de las características del compilador que aún no son compatibles con el compilador de Visual C ++ (en particular, <tgmath.h> no está implementado). Sin duda, quedan algunos problemas de conformidad. Conocemos algunos, entre ellos, falta _Exit y wcstok tiene la firma incorrecta, y estamos trabajando para solucionarlos. Si encuentra un error o una característica que falta, infórmelo en Microsoft Connect. Si informa de errores ahora, existe una gran posibilidad de que podamos solucionarlos antes de RTM.

y tiene muchos detalles que no pueden resumirse fácilmente.

Veo que VS2013 agregó soporte para un gran número de funciones principales del lenguaje principal de C99. Ahora es compatible con literales compuestos, inicializadores designados, macros variadic, declaraciones intercaladas y declaraciones solo por nombrar algunas.

Esto indica que los desarrolladores de VS hicieron pasos serios hacia la compatibilidad con C99 en Visual Studio. Sin embargo, algunas de estas características no son parte del lenguaje C ++, que parece ser una desviación notable de la estrategia de desarrollo anunciada anteriormente (por ejemplo, "el compilador VS C solo admitirá las características C99 que también son parte de C ++").

Entonces, ¿hay alguna palabra oficial o semioficial sobre lo que está pasando? Parece que no puedo encontrar nada definitivo en la red. ¿Se anunciaron oficialmente estas características de C99? ¿Hay algún compromiso con el soporte continuo de C99 en VS? ¿O es esto solo una especie de desarrollo no oficial "deshonesto"?