Я думаю, что если вы хотите передать функцию, вы должны передать ее по указателю.Я не вижу, как вы можете передать функцию по ссылке.
Например, возьмите следующую функцию:
#include <iostream>
#include "math.h"
void myfun (double value, size_t nofloops, double (*function)(double))
{
std::cout << value << std::endl;
for (size_t i=0;i<nofloops;++i)
{
value = function(value);
std::cout << value << std::endl;
}
std::cout << "------------------" << std::endl;
}
void main()
{
myfun(100,10,sin);
myfun(100,10,cos);
myfun(100,10,sqrt);
}
Функция в этой небольшой утилите выполняет данную функцию несколько разраз, принимая результат в качестве входных данных в следующей итерации.Я не вижу, как вы можете передать функцию по ссылке.