通过通用参考捕获

2024-04-17

当将推导类型作为右值引用传递时,我获得了通用引用功能,并且可以实现完美转发,如下所示:

template <typename T>
void func(T&& t) {
    other_func(std::forward<T>(t));
}

...由于 T 的导出方式和标准的参考折叠规则。

现在考虑 other_func 接受一个函数对象

template <typename T>
void func(T&& t) {
    other_func([](int v) { return t + v; }); // I chose addition for example purposes
}

现在显然由于 t 未被捕获而无法编译。我的问题是:如何捕获它,以便捕获的值将是 T 推导出来的值?

使用新的通用 lambda 捕获可以实现这一点吗?如果……怎么办?

[t = std::forward<T>(t)] ? 

我仍然不太了解新捕获初始化程序的机制......


您可以在 C++11 中“通过通用引用捕获”,因为模板参数的类型T可用于 lambda 函数 (Coliru 的可怕的实时代码示例 http://coliru.stacked-crooked.com/a/b575f38adaf76bce):

template <typename T>
void func(T&& t) {
  other_func([&t](int v) {
    return std::forward<T>(t) + v;
  });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过通用参考捕获 的相关文章

  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 未能启用约束。一行或多行包含违反非空、唯一或外键约束的值。 VB.Net 中的错误

    StackOverFlow 中出现了三个类似的问题 但没有人给出答案 如果已找到发生此错误的原因但不知道解决方法 我在用Strongly Typed Dataset对于我的项目 它是作为 DAL 的 dll 创建的 我已使用设计器将 Sql
  • 我无法添加或删除课程

    我正在尝试删除一个类并在一个函数中添加一个类 但是当我点击按钮时什么也没有发生 这是我的代码 function unlikeVerhaal unlike unlike preventDefault document querySelecto
  • 如何使用 JavaScript 从表中的行索引获取行 id

    假设这是我的桌子 table tr td a td tr tr td b td tr table 如何使用表中的行索引获取行 ID 上面只是一个例子 其中 id 是静态的 但在我的例子中 我的 id 是动态的 所以我不能使用document
  • 一个编译器错误让我在 ActionScript 中感到困惑

    首先 我想解释一下 我对 ActionScript 不熟悉 所以不要因为一些基本的错误而责怪我 我刚刚学会了很短的时间 因此 编写 ActionScript 脚本的一些技巧总是值得赞赏的 我不知道编译器为什么说 我的一个类的构造函数不接受任
  • 在打字稿中使用 es-6 符号

    我正在尝试在我的打字稿代码中使用符号 使用 es 5 作为目标 但是 下面的代码会报错TS2304 找不到名称 符号 var sym Symbol 根据路线图 从 1 5 版本开始支持符号 但我想一件事是支持符号 另一件事是将符号转译为 e
  • MVC,模型可以保存/加载其数据吗?

    快速提问 我的数据模型是一个单例对象 它包含我想要存档的名称列表 我的想法是让模型负责加载和保存它自己的数据 该模型的load方法将被调用ViewController s viewDidLoad方法和save by the ViewCont
  • 只能创建一个cardNumber类型的元素

    我正在尝试显示我的条纹组件 但收到此错误 IntegrationError 只能创建一个类型为 cardNumber 的元素 我不知道为什么 因为我在整个应用程序中只使用了一次 有任何想法吗 这是我的索引 import ReactDOM f
  • 创建一个分层的 xml 形式,形成一个类似于书籍描述的“平面”xml

    这是一个后续问题 选择当前元素和当前元素的下一个元素之间的所有元素 https stackoverflow com q 16145859 2115381 即使我不确定创建一个新问题是否是正确的方法 但我还是这样做 因为原来的问题已经回答了
  • 按数据存储 API 中的范围进行过滤

    数据存储 API 文档位于http docs ckan org en ckan 2 2 datastore html http docs ckan org en ckan 2 2 datastore html描述 datastore del
  • 在同一用户的不同设备之间共享 Facebook 访问令牌

    用户可以从不同的设备登录我们的应用程序 我们希望将用户的访问令牌转移到他们登录的所有设备 这样他们就不必在他们使用的每台设备上再次执行 Facebook 登录步骤 在 Facebook 的开发者文档页面之一 https developers
  • matplotlib - 从等高线提取值

    这个问题 答案对 https stackoverflow com questions 5666056 matplotlib extracting data from contour lines显示如何从等高线图中提取顶点 p cs coll
  • 按频率对波形进行颜色编码[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想按本地频率内容显示每个部分中颜色编码的音频波形 基本上与 Serato Traktor 或任何其他
  • 显示当前时间 (EST)

    我创建了一个用户窗体 其中包含一个文本框 该文本框将显示美国东部时间的当前时间 唯一的问题是 反映的时间当然是我们国家的当前时间 所以我想将其转换为 EST 即 12 00从我们的时代开始 Private Sub UserForm Init
  • 如何在extjs中动态设置url和root

    有人能告诉我如何在 Ext JS 中动态设置商店的 url 和 root 吗 我创建了一家像下面这样的商店 我需要更新根并动态设置控制器内的 url Ext define Test store TestStore extend Ext da
  • WSDLException:尝试解析引用的架构时发生错误

    我正在尝试使用 windows xp 上的 eclipse Galileo 和 axis 2 1 4 从本地 WSDL 文件生成代理类 我的问题是 由于 WSDL 中导入的架构 我收到错误 令我烦恼的是
  • 使用 Facebook SDK 4.15.1 在 iOS 10 上使用 Facebook SDK 登录、分享和点赞时获取空白页面

    在我的应用程序中使用 FBSDKLoginKit FBSDKShareKit 登录 共享链接和点赞链接时 我收到此错误 我使用 FBSDKLoginButton 登录 property nonatomic strong IBOutlet F
  • 使用 WHERE 子句的值范围进行查询?

    我有一个 Google 电子表格 我想运行QUERY功能 但我想要WHERE语句来检查一系列值 我基本上是在寻找我会使用的东西INSQL 中的语句 什么是INGoogle 电子表格中的等效项 所以现在我有 QUERY Sheet1 A3 A
  • Google 服务帐户未获得日历 API 授权

    我正在尝试通过服务帐户连接到我们 G Suite 域上的所有日历 我创建了一个新项目 并在 API 和服务页面中启用了 Google Calendar API 我创建了一个 Google 服务帐户 A name 似乎适用的角色 生成的jso
  • 从应用程序的资源加载 .NET 程序集并从内存运行它,但不终止主/主机应用程序

    介绍 我正在使用共享的下一个 C 代码示例大卫赫夫南 for 从应用程序的资源加载 NET 程序集并从内存中运行它 https stackoverflow com a 24033647 1248295 Assembly a Assembly
  • 通过通用参考捕获

    当将推导类型作为右值引用传递时 我获得了通用引用功能 并且可以实现完美转发 如下所示 template