<i id='caKud'><tr id='caKud'><dt id='caKud'><q id='caKud'><span id='caKud'><b id='caKud'><form id='caKud'><ins id='caKud'></ins><ul id='caKud'></ul><sub id='caKud'></sub></form><legend id='caKud'></legend><bdo id='caKud'><pre id='caKud'><center id='caKud'></center></pre></bdo></b><th id='caKud'></th></span></q></dt></tr></i><div id='caKud'><tfoot id='caKud'></tfoot><dl id='caKud'><fieldset id='caKud'></fieldset></dl></div>

    <small id='caKud'></small><noframes id='caKud'>

  1. <tfoot id='caKud'></tfoot>
      <legend id='caKud'><style id='caKud'><dir id='caKud'><q id='caKud'></q></dir></style></legend>

        <bdo id='caKud'></bdo><ul id='caKud'></ul>
    1. 在 lambda 函数中使用 auto self(shared_from_this()) 变量的原因是什么?

      时间:2023-06-30
      <tfoot id='Veost'></tfoot>
      • <small id='Veost'></small><noframes id='Veost'>

            <i id='Veost'><tr id='Veost'><dt id='Veost'><q id='Veost'><span id='Veost'><b id='Veost'><form id='Veost'><ins id='Veost'></ins><ul id='Veost'></ul><sub id='Veost'></sub></form><legend id='Veost'></legend><bdo id='Veost'><pre id='Veost'><center id='Veost'></center></pre></bdo></b><th id='Veost'></th></span></q></dt></tr></i><div id='Veost'><tfoot id='Veost'></tfoot><dl id='Veost'><fieldset id='Veost'></fieldset></dl></div>
            <legend id='Veost'><style id='Veost'><dir id='Veost'><q id='Veost'></q></dir></style></legend>
            • <bdo id='Veost'></bdo><ul id='Veost'></ul>
                <tbody id='Veost'></tbody>
                本文介绍了在 lambda 函数中使用 auto self(shared_from_this()) 变量的原因是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我阅读了 boost asio http 服务器示例代码(参见 http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp) 并找到 auto self(shared_from_this()); 变量被用于捕获范围([this, self]).但是在 lambda 函数中没有使用 self 变量.那么这样做有什么好处呢?

                I read the boost asio http server example code (see http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp) and find the auto self(shared_from_this()); variable is been used in the capture scope ([this, self]). But the self variable is not been used in the lambda function. Then what's the benefit of doing so?

                推荐答案

                这样做是为了确保 connection 对象比异步操作寿命更长:只要 lambda 是活动的(即异步操作正在进行),connection 实例也处于活动状态.

                This is done in order to make sure that connection object outlives the asynchronous operation: as long as the lambda is alive (i.e. the async. operation is in progress), the connection instance is alive as well.

                这篇关于在 lambda 函数中使用 auto self(shared_from_this()) 变量的原因是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:如何将 C++ lambda 传递给需要函数指针和上下文的 C 回调? 下一篇:了解 Lambda 闭包类型如何删除默认构造函数

                相关文章

                  <legend id='hi7Mg'><style id='hi7Mg'><dir id='hi7Mg'><q id='hi7Mg'></q></dir></style></legend>

                  1. <i id='hi7Mg'><tr id='hi7Mg'><dt id='hi7Mg'><q id='hi7Mg'><span id='hi7Mg'><b id='hi7Mg'><form id='hi7Mg'><ins id='hi7Mg'></ins><ul id='hi7Mg'></ul><sub id='hi7Mg'></sub></form><legend id='hi7Mg'></legend><bdo id='hi7Mg'><pre id='hi7Mg'><center id='hi7Mg'></center></pre></bdo></b><th id='hi7Mg'></th></span></q></dt></tr></i><div id='hi7Mg'><tfoot id='hi7Mg'></tfoot><dl id='hi7Mg'><fieldset id='hi7Mg'></fieldset></dl></div>
                    <tfoot id='hi7Mg'></tfoot>
                    • <bdo id='hi7Mg'></bdo><ul id='hi7Mg'></ul>
                  2. <small id='hi7Mg'></small><noframes id='hi7Mg'>