Przypisanie statycznej funkcji z argumentami do std::function

0

Witam.
Czy jest możliwe przypisanie statycznej funkcji z argumentami do std::function?
Próbowałem zrobić to w poniższy sposób jednak, przy próbie kompilacji pojawia się błąd.

std::function<std::string()> webRequest = std::bind(&WebRequest::MakeRequest, siteAddress, getParameters);
Error	C2440	'return': cannot convert from 'std::_Unforced' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'	...\Microsoft Visual Studio 14.0\VC\include\type_traits	1441	

Prostym obejściem problemu jest stworzenie lambdy wywołującej powyższą metodę, jednak nie wydaje mi się to najlepszym rozwiązaniem:

std::function<std::string()> webRequestLambda = [this, &getParameters]()
{
	return WebRequest::MakeRequest(siteAddress, getParameters);
};

WebRequest.h

static std::string WebRequest::MakeRequest(std::string url, const std::vector<std::array<std::string, 2>>& getParameters = {}, const std::vector<std::array<std::string, 2>>& postParameters = {}, const std::vector<std::array<std::string, 2>>& headers = {}, const std::string& cookiesToSend = "", std::string* receivedCookies = NULL);

Środowisko: Microsoft Visual Studio 2015 Community.

2

ta funkcja przyjmuje 6 argumentów, a nie 2. std::bind nic nie wie o domyślnych wartościach dla argumentów.

0

Dziękuję za pomoc.
W takim razie lambda wydaje się najbardziej sensowna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1