Имитация сопоставления с образцом в стиле ML в C ++

В заголовке почти все сказано, как бы я смоделировал сопоставление шаблонов в стиле ML в C ++, например;

Statement *stm;
match(typeof(stm))
{
    case IfThen: ...
    case IfThenElse: ...
    case While: ...
    ...
}

Где «IfThen», «IfThenElse» и «While» являются классами, которые наследуются от «Statement»

Ответы на вопрос(1)

Ваш ответ на вопрос