Ваш лучший вариант - просто оставить все функции неопределенными и посмотреть, какие ошибки выдает вам компилятор, когда он пытается создать экземпляр функции шаблона. Если вам нужно сделать это несколько раз, возможно, установка #ifdef вокруг этого кода позволит создать «выгрузку использованных функций». Оттуда это будет простой сценарий оболочки или что-то, чтобы вытащить типы функций, созданных из журнала ошибок компилятора.
В качестве альтернативы, вы можете добавить ошибку компиляции на основе параметра шаблона:
template<typename T>
int func(T val)
{
T::this_version_is_being_included;
}