O que é memória boost :: variant e custo de desempenho?

O boost :: variant parece um contêiner poderoso para manipular um conjunto heterogêneo de tipos. Eu estou querendo saber o seu custo. Na memória, acho que ocupa o tamanho do maior tipo mais um número inteiro representando qual (). Para apply_visitor (), acho que seu desempenho é muito bom, ele pode chamar diretamente a função além de muitos ifs. Os meus pontos estão certos?