Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

313
Vistas
Advertencia: la variable puede usarse unificada en esta función

Recibo una advertencia ([-Wmaybe-uninitialized]) en un código que no creo que deba lanzar una advertencia. Compilando con cmake usando GCC. Básicamente está diciendo que una variable puede no inicializarse, pero creo que está garantizado que se inicializará. Aquí hay un ejemplo:

 #include<iostream> enum class ByteOrder { little_endian, big_endian }; class someClass { someClass(ByteOrder order = ByteOrder::little_endian) : kOrder{order} {} void someFunc(); private: const ByteOrder kOrder; }; void someClass::someFunc() { int i; switch(kOrder) { case ByteOrder::little_endian: i = 0; break; case ByteOrder::big_endian: i = 1; break; } std::cout << i; }

Según GCC, yo en la línea

 std::cout << i;

podría no estar inicializado. Pero no veo cómo es posible, ya que solo hay dos opciones en la declaración de cambio. Intenté configurar ByteOrder en nullptr pero eso no funcionó. ¿Me estoy perdiendo de algo?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Para ilustrar los comentarios a su pregunta, intente esto:

 const ByteOrder kOrder = (ByteOrder)3;

En pocas palabras: solo agregue el caso default: es posible que desee throw desde allí.

over 4 years ago · Santiago Trujillo Denunciar

0

Todos tuvieron una gran contribución en esto. Terminé resolviendo esto simplemente inicializando mi variable a un valor arbitrario. No queríamos usar el valor predeterminado porque queríamos mantener las advertencias que aparecen cuando no tiene una declaración de cambio exhaustiva para una enumeración. Gracias a todos por responder.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda