• <small id='7I8eC'></small><noframes id='7I8eC'>

    <legend id='7I8eC'><style id='7I8eC'><dir id='7I8eC'><q id='7I8eC'></q></dir></style></legend>

      <bdo id='7I8eC'></bdo><ul id='7I8eC'></ul>

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

        返回 lambda 表达式的函数

        时间:2023-06-30

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

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

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

                <bdo id='LXJlO'></bdo><ul id='LXJlO'></ul>
                  <tfoot id='LXJlO'></tfoot>
                • 本文介绍了返回 lambda 表达式的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我想知道是否可以在 C++11 中编写一个返回 lambda 函数的函数.当然一个问题是如何声明这样的函数.每个 lambda 都有一个类型,但该类型在 C++ 中无法表达.我认为这行不通:

                  auto retFun() ->decltype ([](int x) -> int){返回 [](int x) { 返回 x;}}

                  也不是这个:

                  int(int) retFun();

                  我不知道从 lambda 表达式到函数指针等的任何自动转换.手工制作函数对象并返回它的唯一解决方案是什么?

                  解决方案

                  你不需要手工制作的函数对象,只需使用 std::function,lambda 函数可以转换为:>

                  此示例返回整数标识函数:

                  std::functionretFun() {返回 [](int x) { 返回 x;};}

                  I wonder if it's possible to write a function that returns a lambda function in C++11. Of course one problem is how to declare such function. Each lambda has a type, but that type is not expressible in C++. I don't think this would work:

                  auto retFun() -> decltype ([](int x) -> int)
                  {
                      return [](int x) { return x; }
                  }
                  

                  Nor this:

                  int(int) retFun();
                  

                  I'm not aware of any automatic conversions from lambdas to, say, pointers to functions, or some such. Is the only solution handcrafting a function object and returning it?

                  解决方案

                  You don't need a handcrafted function object, just use std::function, to which lambda functions are convertible:

                  This example returns the integer identity function:

                  std::function<int (int)> retFun() {
                      return [](int x) { return x; };
                  }
                  

                  这篇关于返回 lambda 表达式的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:这个元组创建习惯用法有名字吗? 下一篇:我应该复制一个 std::function 还是我可以总是引用它?

                  相关文章

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

                    • <bdo id='ZitCM'></bdo><ul id='ZitCM'></ul>

                    1. <tfoot id='ZitCM'></tfoot>

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