Как сделать указать на функцию по другому

Я пытаюсь сделать указатель на функцию с типом void но мой код чет гонит и выдает такую ошибку

msvcp140d.amd64.pdb содержит отладочную информацию, необходимую для поиска исходного кода для модуля msvcp140d.dll

точнее это даже не ошибка просто он проглатывает первое действия во время выполнения.

Но если я буду устанавливать тип int вместо void тогда все нормально, но я не понимаю зачем ему тип int в указатели на функцию и что не так.

Данный код не факт что вызовет такую же ошибку у вас как у меня, но возможно я не правильно что то делаю и вы это увидите.

template <class T1>
void alfa_test(T1& alice) {
  alice++;
  std::cout << alice << " зырим" << "\n" << std::endl;
}

template <class T1>
void beta_test(T1& bob) {
  bob++;
  std::cout << bob << " зырим" << "\n" << std::endl;

}

    template <class T1, class T2>
    tester(T1& mod, T2& wtf, void (*func)(T2&)) {
       // вариант 1
       func(wtf);

       // вариант 2 нужен тип int а не void
       if (func(wtf) != 0)

       mod++;
       std::cout << mod << " зырим" << "\n" << std::endl;       
    }

int mod = 0;
int wtf = 0;

int main() {
  tester(mod, wtf, beta_test);
  system("pause");

  return 0;
}

Ответы (1 шт):

Автор решения: 300 bucks

Ну вы сравниваете возвращаемое значение функции с 0. У нуля тип int, а не void, поэтому и требуется int.

Ещё надо функции tester дать возвращаемый тип. Например, void.

→ Ссылка