C++std :: variante


Observaciones

La variante es un reemplazo para el uso de la union cruda. Es de tipo seguro y sabe de qué tipo es, y construye y destruye cuidadosamente los objetos dentro de él cuando debería.

Casi nunca está vacío: solo en los casos de esquina donde se reemplaza el contenido y no se puede retroceder de manera segura, se queda en un estado vacío.

Se comporta algo así como un std::tuple , y algo así como un std::optional .

Usar std::get y std::get_if suele ser una mala idea. La respuesta correcta suele ser std::visit , que le permite lidiar con todas las posibilidades allí mismo. if constexpr se puede usar if constexpr dentro de la visit si necesita ramificar su comportamiento, en lugar de hacer una secuencia de verificaciones de tiempo de ejecución que dupliquen lo que la visit hará de manera más eficiente.

std :: variante Ejemplos relacionados