stackoverflow. enable_if_t позволяет специфицировать шаблон HasFoo
на true или false. is_same в паре с decltype опредедяют наличие
foo. Мне думается, результат is_same уже можно использовать там где
нужен вызов foo. Дополнительный шаблон HasFoo скорее для красоты.
Мопед не мой, если что :)