gpt4 book ai didi

c++ - 外部参照环绕错误 : 'void' function returning a value

转载 作者:可可西里 更新时间:2023-11-01 10:48:23 25 4
gpt4 key购买 nike

我在使用 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)));

下面是我绑定(bind)的成员函数的两个签名:

bool  Client::handleReceive(std::shared_ptr<TBSystem::network::sockets::ITcpSocket>& socket,
Lounge& lounge);

void Lounge::handleClientDisconnect(const Client& c);

我确实在 Client::handleReceive 中返回了一个值.

这是两个std::function我在调用 addSocket 时使用的原型(prototype):

typedef std::function<bool (std::shared_ptr<sockets::ITcpSocket>&)> readCallback;
typedef std::function<void ()> disconnectCallback;

最佳答案

好吧,原来在我的一个文件中我添加了一个带有错误原型(prototype)的监听器 (std::plus)...

_listener.addSocket(serverSocket,
std::bind(&Lounge::acceptClient, this, _1),
std::bind(std::plus<int>(), 0, 0);

关于c++ - 外部参照环绕错误 : 'void' function returning a value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com