Как сделать указать на функцию по другому
Я пытаюсь сделать указатель на функцию с типом 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.