Краткий ответ: Вы не можете.
Длинный ответ: Вы можете для конкретных реализаций вашей функции шаблона.
То, что у вас есть, - хорошее начало, но вам нужна еще одна вещь. Вам необходимо определить функцию structToString()
для конкретной структуры, которую вы хотите преобразовать в строку. Вот так:
template <>
std::string structToString(const test1& st) //Pass KNOWN struct as input
{
// Now you have access to struct test1's member data
}
Теперь, каждый раз, когда вы вызываете structToString()
с объектом test1
, он будет вызывать этот новый метод, но любые другие структуры, которые не определяют метод structToSting()
, будут вызывать ваш универсальный метод. (Который вы могли бы затем вернуть «[Неизвестно]», или подобное)