Simulando a correspondência de padrões no estilo ML em C ++
O título diz praticamente tudo, como eu poderia simular a correspondência de padrões no estilo ML em C ++, por exemplo;
Statement *stm;
match(typeof(stm))
{
case IfThen: ...
case IfThenElse: ...
case While: ...
...
}
Onde 'IfThen', 'IfThenElse' e 'While' são classes que herdam de 'Statement'