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.