Manipulando números grandes em C ++?

Qual é a melhor maneira de manipular grandes entradas numéricas em C ++ (por exemplo10^100)

Para algoritmos, geralmente mudo para ruby ​​e às vezes uso strings.

Algum outro bom método?