Можно ли написать шаблон для проверки существования функции?
можно ли написать шаблон, который изменяет поведение в зависимости от того, определена ли определенная функция-член в классе?
вот простой пример того, что я хотел написать:
template<class T>
std::string optionalToString(T* obj)
{
if (FUNCTION_EXISTS(T->toString))
return obj->toString();
else
return "toString not defined";
}
Итак, если class T
и toString()
определено, то он использует его; в противном случае, это не так. Вся магия, что я не знаю, как сделать это "FUNCTION_EXISTS" часть.