У меня есть функция шаблона для class C
и две другие функции шаблона для typename T
, которые я хотел бы использовать, как показано ниже:
template <typename T>
std::string MyHelperFunction1(...) { ... }
template <typename T>
std::string MyHelperFunction2(...) { ... }
template <class C>
std::string MyFunction(...) {
// if C is an instance of Struct1<T> -> call MyHelperFunction1<Struct1<T>>
// if C is an instance of Struct2<T> -> call MyHelperFunction2<Struct2<T>>
Database db = OpenDatabase();
return MyFunction<C>(db, ...); // The same function but with different input args.
}
Самый близкий вопрос, который я нашел, был следующим (Как проверить тип параметра шаблона?), который не работает в моем случае, потому что я вызываю другие функции шаблона внутри MyFunction()
. Какое рабочее решение для того, что я хочу иметь?