2
我有這個奇怪的錯誤:xrefwrap錯誤:與Visual Studio 2012編譯我的項目時,「無效」函數返回值
error C2562: 'std::_Callable_obj<_Ty>::_ApplyX' : 'void' function returning a value C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xrefwrap
當xrefwrap
跳躍,誤差來源於此行:
_VARIADIC_EXPAND_0X(_APPLYX_CALLOBJ, , , ,)
我的代碼編譯罰款Linux上的GCC ..再加上編譯器給了我是什麼原因造成這個錯誤的信息。
這個錯誤的原因是什麼?我懷疑這一段代碼可能是源,但僅僅是因爲我使用std::ref
有:
_listener.addSocket(clientSock, std::bind(&Client::handleReceive, &client,
_1, std::ref(*this)),
std::bind(&Lounge::handleClientDisconnect, this,
std::cref(client)));
這裏是的成員函數我綁定了兩個簽名:
bool Client::handleReceive(std::shared_ptr<TBSystem::network::sockets::ITcpSocket>& socket,
Lounge& lounge);
void Lounge::handleClientDisconnect(const Client& c);
我做回一個值在Client::handleReceive
。
這是兩個std::function
原型叫addSocket
當我使用:
typedef std::function<bool (std::shared_ptr<sockets::ITcpSocket>&)> readCallback;
typedef std::function<void()> disconnectCallback;
錯誤說'void'函數返回一個值。這意味着你可能需要給我們那些成員函數的簽名,至少。 – mfontanini
我編輯了我的答案 – Zoneur