Alguien de la audiencia hizo una pregunta durante la charla del "Panel de biblioteca estándar de C ++" en CppCon 2016 ( YouTube ) sobre el potencial del nombre experimental
para asustar a los usuarios de usar cualquier cosa dentro del espacio de nombres:
¿Ustedes consideran que [el contenido del std::experimental
espacio de nombres] está listo para la producción y es un argumento que se puede hacer, [que] está efectivamente listo para la producción para los próximos 3 años, y tal vez tengan que cambiar su código 3 años después, tal vez?
Michael Wong (presidente de SG5 y SG14 y editor de Concurrency TS) respondió la pregunta primero:
Creo que hay un fuerte consenso dentro del comité de que está prácticamente listo para la producción. Como dije antes, en la mayoría de los casos el 99% se lanza al aire. Queremos asegurarnos de que no sea un impedimento para que lo use. Puede comprender por qué queremos poner grandes funciones, grandes grupos de funciones, en ese contexto, para que no moleste al resto de todo el sistema de la biblioteca, pero también le facilite su uso. Ahora puede activar GCC con una bandera específica para Conceptos, ya sabe, que en realidad le facilita la segmentación.
Alisdair Meredith (ex presidente del LWG) luego hizo un seguimiento:
Voy a tomar la posición contraria aquí. Una de las cosas que Herb [Sutter] dijo como coordinador del WG21, el grupo estándar, cuando emprendimos el camino de los TSes es que no pensó que los TSes hubieran tenido éxito hasta que no hubiéramos podido presentar algo, porque significa que no estamos siendo lo suficientemente experimentales, no estamos siendo lo suficientemente ambiciosos en lo que estamos usando los TSes. Realmente queremos esoexperimental
para dar una pista de que, sí, estas cosas están sujetas a cambios, no estamos vinculados a eso y podemos hacer las cosas mal. Esto es para reducir nuestra barrera para las cosas que consideramos que son tan ambiciosas y de alcance como podamos [...] Ahora el estándar parece estar en un ciclo de lanzamiento de tres años, deberíamos ser mucho más ambiciosos al poner características realmente experimentales en el TS, y quizás avanzando más rápidamente hacia el estándar principal en sí. Pero, nuevamente, este será un tema divertido para discutir en las próximas reuniones del [comité estándar de C ++].
Stephan T. Lavavej (responsable de la implementación de STL de Microsoft) fue el último en responder:
Es importante hacer una distinción entre la experimentalidad de la interfaz y la experimentalidad de la implementación, porque cuando dice "producción lista", ¿qué significa eso? Por lo general, "listo para la producción", pensaría en eso hablando de la implementación. Es muy posible que una implementación [de algo en std::experimental
] sea absolutamente [...] a prueba de balas. [...] Algo como [...] el <random>
encabezado en TR1, [fue] realmente, muy bueno en TR1, y podría haber tenido una implementación absolutamente a prueba de balas de eso, pero resultó que la interfaz se agitó sustancialmente [antes del lanzamiento de] C ++ 11 y [...] si supiéramos entonces lo que hacemos ahora, poniendo un porque, ja, ja, va a desaparecer en C ++ 11 ".experimental
hubiera sido una mejor señal para la gente de que "Oye, tal vez no quieras utilizarstd::experimental::variate_generator
Así que parece que hay algún deseo entre los desarrolladores de bibliotecas estándar y los miembros del comité que, en el futuro, al menos, el contenido del std::experimental
espacio de nombres deben ser verdaderamente "experimental" en la naturaleza, y no debe darse por sentado que algo en std::experimental
la voluntad conviértalo en el estándar C ++.
Y no, por lo que tengo entendido, depende de los proveedores de bibliotecas estándar si proporcionan implementaciones para las diversas funciones que contiene std::experimental
.