C++ 使用lamba函数时可能出现堆栈溢出?
在给出的示例中,我们可以看到这样的代码块:C++ 使用lamba函数时可能出现堆栈溢出?,c++,c++11,boost,recursion,C++,C++11,Boost,Recursion,在给出的示例中,我们可以看到这样的代码块: void do_accept() { acceptor_.async_accept(socket_, [this](boost::system::error_code ec) { if (!ec) { std::make_shared<session>(std::move(socket_))->start();
void do_accept()
{
acceptor_.async_accept(socket_,
[this](boost::system::error_code ec)
{
if (!ec)
{
std::make_shared<session>(std::move(socket_))->start();
}
do_accept();
});
void do_accept()
{
接受程序异步接受(套接字),
[this](boost::system::error_code ec)
{
如果(!ec)
{
std::make_shared(std::move(socket_))->start();
}
你接受吗;
});
我是C++11的新手。所以我想知道这段代码是否会导致堆栈溢出(太多的递归调用),因为do_accept()类注册了do_accept()的回调
谢谢。没有。
async\u-accept
将触发一个异步调用并立即返回--do\u-accept
因此在调用后立即返回
稍后,异步调用将完成,并将调用
do\u accept
来触发另一个异步调用。不涉及递归。不。async\u accept
将触发一个异步调用并立即返回--do\u accept
因此在调用后立即返回
稍后,异步调用将完成,并将调用
do\u accept
来触发另一个异步调用。不涉及递归。do\u accept
从不调用自身。do\u accept
从不调用自身。