Не находится соответствующий конструктор шаблона класса
template<typename Func >
class SC
{
public:
SC(Func* func) {};
};
BOOL(WINAPI * beep)(_In_ DWORD dwFreq, _In_ DWORD dwDuration) = &Beep;
SC<std::remove_reference_t<decltype(beep)>> ad(beep);//ошибка- отсутвствуют экземпляры конструктора
SC<std::remove_reference_t<decltype(*beep)>> ad(beep);//OK
Почему так происходит, ведь func в конструкторе будет иметь такой же тип как и beep.