У меня есть функция шаблона, которую я ожидаю, что вы будете templatized для разных типов в разных местах.
Проблема в том, что я хотел бы знать во время компиляции, если есть специализация для данного типа для генерации двумя разными способами другого шаблона.Могут ли C++ шаблоны проверить, была ли перегружена функция для заданного типа?
template<typename T>
bool tobool(const T&){ throw Exception("Can't cast to bool");};
template<> bool tobool<bool>(const bool &value){ return value;}
Я знаю, что вы можете проверить функции, как и в существовании here.
Возможны ли какие-либо шансы на то, как тестировать, если tobool был специализированным?
Представьте, что я хочу сгенерировать isbool(), который возвращает true, если tobool() был специализированным и возвращает false, если нет.
Правильно ли я понимаю? : Вам нужен метафунд, который для каждого типа T показывает, был ли tobool специализирован для T? – 2010-11-28 20:33:20
Да, мне нужно знать, использует ли T общий или специализированный тобул. – 2010-11-28 20:34:27