¿Alguien sabe si el boost::get
para el boost::variant
es una operación que consume rendimiento o no.C++ - boost obtener pregunta
En este momento estoy refactorización algún código de edad en una parte rendimiento crítico, donde "varianting" estaba ejecutando por contenedores para cada posible tipo y la correspondiente enum
.
Obviamente, esto es rápido, pero feo y ahora cuando tengo que refactorizar el código para que se trabajaría con un tipo más, que quieren deshacerse de la parte antigua de código y reemplazarlo con boost::variant
.
Además, no puedo simplemente "perfilar ambas variantes y comparar" porque esta refactorización es un dolor en el culo y me llevaría bastante tiempo.
Por lo tanto, si alguien sabe cómo se comporta el boost::get<x>
en comparación con el envío genérico de tipo enum-based
, le agradecería si comparte este conocimiento.
Hay otra variante de la utilización de boost::variant<types>
con usuario personalizado (como se describe en la documentación boost::variant
) - puede ser más rápido que este boost::get
en mi caso?
Gracias.
¿Has probado mirar el código fuente? http://www.boost.org/doc/libs/1_44_0/boost/variant/get.hpp – Wernight
Si una operación _custom_ fuera más rápida que la suya, ¿no basarían su propia implementación en la implementación personalizada? – sbi
¿Finalmente eligió 'void *'? – DarioP