¿Manejar grandes números en C ++?

¿Cuál es la mejor manera de manejar entradas numéricas grandes en C ++ (por ejemplo,10^100)?

Para los algoritmos usualmente cambio a ruby ​​y algunas veces uso cadenas.

¿Algún otro buen método?