Разница между std::conditional и std::enable_if в C++ заключается в их функциях.
std::conditional позволяет объединить две функции в одну, но при этом обе «ветви» должны быть хорошо сформированы. 1
std::enable_if, в свою очередь, позволяет включать или отключать шаблоны в зависимости от определённых свойств типов, переданных в качестве параметров шаблона. 5
Таким образом, std::conditional больше подходит для объединения нескольких функций в одну, а std::enable_if — для управления шаблонами на основе конкретных условий.