указатель на функцию в качестве параметра

Функция GetDataFromServer принимает в качестве параметра какую-то строчку и её возвращает. Функция GetDataFromBase делает то же самое. Функция ShowInfo принимает в качестве параметра указатель на функцию с 1 параметром типа string и должна её вызвать в cout, но как это сделать(подскажите что не так в коде)?

#include <iostream>
#include <string>
using namespace std;
string GetDataFromServer(string DataServer)
{
    return DataServer;
}

string GetDataFromBase(string DataBD)
{
    return DataBD;
}

void ShowInfo(string(*foo)(string data))
{
    cout << foo(data) << endl;
}
int main()
{
    string Data = "data is 8";
    ShowInfo(GetDataFromBase(Data));
}  

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

Автор решения: Harry

Здесь

void ShowInfo(string(*foo)(string data))

data не играет никакой роли - как в объявлении функции.

void ShowInfo(string(*foo)(string), string data)

еще куда ни шло. Ну, и вызывать соответственно -

ShowInfo(GetDataFromBase,Data);
→ Ссылка