2017-05-12 2 views
1

Der folgende CodeausschnittVerständnis C2664 Fehler: Kann nicht konvertieren Argument 1

#include "uWS/uWS.h" 

int main() 
{ 
    uWS::Hub h; 
    h.onConnection([&h](uWS::WebSocket<uWS::SERVER> *ws, uWS::HttpRequest req) { 
    std::cout << "Connected!!!" << std::endl; 
    }); 
    h.run(); 
} 

Erzeugt die Fehler

Severity Code Description Project File Line Suppression State Error (active) E0304 no instance of overloaded function "uWS::Hub::onConnection" matches the argument list pid c:\Users\R\src\main.cpp 6 Error C2664 'void uWS::Group<false>::onConnection(std::function<void (uWS::WebSocket<false>,uWS::HttpRequest)>)': cannot convert argument 1 from 'main::<lambda_1afdd040d2f03ded23f0c636dc85475d>' to 'std::function<void (uWS::WebSocket<true>,uWS::HttpRequest)>' pid c:\users\r\src\main.cpp 8

Wenn 10.0 in Visual Studio 2017 IDE mit dem Windows SDK Version gebaut .15063.0, wobei "uWS/uWS.h" die tiny web sockets definitions

012 enthält

Was könnte das Problem sein?

+0

hi, habe die gleiche Frage, lösen Sie dieses Problem jetzt? – HeyJoy

+0

Yep: Ich wechselte uWS :: WebSocket * ws zu uWS :: WebSocket WS und alles funktioniert wie ein Charme. Anscheinend hat sich die uWS API geändert. – user1934212

Antwort

1

Aus der Fehlermeldung sieht es so aus, als ob die Funktion onConnection eine Funktion erwartet, die eine übernimmt, aber Ihre Lambda-Funktion akzeptiert stattdessen eine uws::WebSocket*.

Verwandte Themen