Opcional em C: Por que não há especialização para tipos de referência?
Apesar da presença de especialização para tipos de referência em bibliotecas como Boost, o C std::optional da biblioteca padrão não fornece esse recurso. Esta decisão gerou dúvidas sobre sua justificativa e possíveis mecanismos alternativos.
Fundamentação por trás da omissão
Durante a discussão do n3406 (a proposta de opcional), foram levantadas preocupações quanto à inclusão de referências opcionais. Reconhecendo essas objeções, os autores do n3527 separaram as referências opcionais em uma proposta auxiliar para aumentar a probabilidade de aceitação de valores opcionais padrão. Embora o opcional não tenha sido incluído no C 14 devido a fatores não relacionados, a desaprovação do comitê de referências opcionais não foi um problema. não oferece especialização para tipos de referência, a biblioteca padrão carece de uma construção equivalente que forneça a semântica de "referência a objetos possivelmente existentes". Isso pode fazer com que os desenvolvedores busquem alternativas:
Auto_ptr:
Embora obsoleto em C 11, std::auto_ptr pode simular uma referência com semântica de propriedade. No entanto, seu uso é desencorajado devido a problemas como vazamentos de memória.Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3