Порядок аргументов шаблона в определении
template <typename Rep, typename Period >
void BaseStrategy<T>::print_time(tm t, std::chrono::duration<Rep, Period> fraction)
не соответствует порядку параметров шаблона в объявлении
template<typename Period, typename Rep>
void print_time(tm t, chrono::duration<Rep, Period> fraction);
Любая запись
template<typename Rep, typename Period>
void print_time(tm t, chrono::duration<Rep, Period> fraction);
или (более запутанно)
template<typename Period, typename Rep>
void print_time(tm t, chrono::duration<Period, Rep> fraction);