Opcional en C: ¿Por qué no hay especialización para tipos de referencia?
A pesar de la presencia de especialización para tipos de referencia en bibliotecas como Boost, C std::optional de la biblioteca estándar no proporciona dicha característica. Esta decisión ha generado consultas sobre su justificación y posibles mecanismos alternativos.
Razón detrás de la omisión
Durante la discusión de n3406 (la propuesta opcional), surgieron preocupaciones respecto a la inclusión de referencias opcionales. Al reconocer estas objeciones, los autores de n3527 separaron las referencias opcionales en una propuesta auxiliar para mejorar la probabilidad de aceptación de los valores opcionales estándar. Si bien finalmente no se incluyó lo opcional en el C 14 debido a factores no relacionados, la desaprobación del comité de las referencias opcionales no fue un problema.
Alternativas actuales
Aunque std::optional no ofrece especialización para tipos de referencia, la biblioteca estándar carece de una construcción equivalente que proporcione la semántica de "referencia a un objeto posiblemente existente". Esto puede hacer que los desarrolladores busquen alternativas:
Consideraciones futuras
Si bien las referencias opcionales actualmente no están presentes en el Biblioteca estándar C, el comité no ha descartado su futura inclusión. En caso de que se presente una propuesta formal, la decisión dependerá en última instancia de la evaluación que haga el comité de los méritos de la característica propuesta.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3