У меня есть функция шаблона, которую я ожидаю шаблонизировать для разных типов в разных местах.
Проблема в том, что я хотел бы знать во время компиляции, существует ли специализация для данного типа для создания двумя разными способами другого шаблона. .
template<typename T>
bool tobool(const T&){ throw Exception("Can't cast to bool");};
template<> bool tobool<bool>(const bool &value){ return value;}
Я знаю, что вы можете проверить существование функции, как в здесь.
Есть ли шанс, как проверить, был ли tobool специализирован?
Представьте, что я хочу сгенерировать isbool(), который возвращает true, если tobool() был специализированным, и возвращает false, если нет.