es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo es la asignación opcional constexpr en C++ 20?

Al contenido interno de un opcional, ¿no se requiere el uso de “placement new” para reconstruir el almacenamiento interno en su lugar o en la unión? ¿Existe alguna característica nueva como “placement new” en C++ 20 que permita la asignación constexpr de std::optional?

cpp
template<class u="T">
optional& operator=( U&& value );
(desde C++17)
(hasta C++20)
template<class u="T">
constexpr optional& operator=( U&& value );
(desde C++20)

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, para reconstruir el almacenamiento interno in situ o la unión de un opcional, se requiere el uso de new en el lugar de inserción. Esto permite que el objeto se construya en la misma dirección que antes sin llamar al destructor del objeto antiguo.

    En C++20, se ha introducido una nueva característica llamada asignación constexpr de std::optional. Esto permite que la asignación de un valor a un opcional se realice en tiempo de compilación, si es posible. Esta característica puede mejorar el rendimiento y generar archivos binarios más pequeños.

Comments are closed.