lambda 函数可以模板化吗?

2023-12-06

在 C++11 中,有没有办法模板化 lambda 函数?或者它本身就太具体而无法模板化?

我知道我可以定义一个经典的模板化类/函子,但问题更像是:该语言是否允许模板化 lambda 函数?


2018 年更新:C++20 将附带模板化和概念化的 lambda。该功能已经集成到标准草案中。


2014 年更新:C++14 已于今年发布,现在提供与本示例中语法相同的多态 lambda。一些主要的编译器已经实现了它。


遗憾的是,就目前情况(C++11 中)而言,答案是否定的。多态 lambda 在灵活性和功能方面非常出色。

它们最终成为单态的最初原因是因为概念。概念使此代码情况变得困难:

template <Constraint T>
void foo(T x)
{
    auto bar = [](auto x){}; // imaginary syntax
}

在受约束模板中,您只能调用其他受约束模板。 (否则无法检查约束。)可以foo invoke bar(x)? lambda 有哪些约束(毕竟它的参数只是一个模板)?

概念还没有准备好解决这类问题;它需要更多的东西,比如late_check(在调用之前不会检查概念)之类的东西。更简单的方法就是放弃一切并坚持使用单态 lambda。

然而,随着 C++0x 中概念的删除,多态 lambda 再次成为一个简单的命题。但是,我找不到任何建议。 :(

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lambda 函数可以模板化吗? 的相关文章

  • 从值获取键 - Dictionary>

    我无法通过指定值来获取密钥 我实现这一目标的最佳方法是什么 var st1 new List
  • 如何从 C# 可移植类库 (PCL) 添加对 F# 可移植库的引用

    我有一个项目 其中包含两个 F 项目和一个 C 项目 我想在其中编写一些 XUnit 测试 FS PL F 3 1 3 3 1 0 可移植库 FS PL Legacy F 31 2 3 5 1 可移植库 旧版 测试 C NET 4 5 Wi
  • Microsoft.Web.Administration 内存泄漏

    拥有一个 Windows 服务 除其他外 还可以监视 IIS 应用程序池 如果任何池已配置应用程序但未运行 则该池 池 将启动 这已经运行良好一段时间了 最近发现该服务存在内存泄漏 查看内存转储 罪魁祸首是用于检查应用程序池的 Micros
  • unique_ptr需要存储删除器怎么可能没有开销呢?

    先看看C Primer讲了什么unique ptr and shared ptr 16 1 6 美元 效率和灵活性 我们可以确定的是shared ptr不将删除者视为直接成员 因为删除器的类型直到运行时才知道 因为删除器的类型是a类型的一部
  • 如何使用 VB.NET 或 C#.NET 代码从 yahoo 邮件 ID 发送邮件

    我想从我的 yahoomail Id 发送邮件 如何使用 VB NET 或 C NET 代码从 yahoo mail Id 发送邮件 需要善意的帮助 提前谢谢 西瓦库马尔 以下是一些制作基本 html 电子邮件消息的示例 http help
  • send() 使我的程序崩溃

    我正在运行服务器和客户端 我正在我的计算机上测试我的程序 这是服务器中向客户端发送数据的函数 int sendToClient int fd string msg cout lt lt sending to client lt lt fd
  • 根据值更改 DataGrid 单元格颜色

    我有一个 WPF 数据网格 我想要根据值使用不同的单元格颜色 我的 xaml 上有以下代码 Style TargetType DataGridCell 但不是只选择一个单元格而是选择所有行 我缺少什么 如果您尝试设置DataGrid Cel
  • Err_Response_Headers_Multiple_Content_Disposition

    我需要导出 2csv单击一个按钮即可打开文件 下面是我生成2的代码csv files using System Data using System Data SqlClient using System Text using System
  • “应用程序配置”文件中的最大键/值长度

    允许的最大长度是多少MyKey and MyValue在配置文件中
  • WPF:BinaryFormatter 可以序列化 FlowDocument 实例吗?

    我喜欢使用binaryformatter来序列化流文档 但这是例外 Serializable public class BinFlow public FlowDocument my get set BinFlow myBF new BinF
  • 当 MSB 位等于 0 时如何以十六进制格式打印它们

    我需要使用打印变量HEX格式 问题是当我的变量很小时 MSB 等于 0 因此不会打印它们 ex uint16 t var 10 0x000A h gt 我需要打印 000A 但无论我做什么它总是打印 A 我怎样才能让它发挥作用 您可以添加前
  • CGAL:如何有效计算多面体的面面积?

    我有一个多面体 其面是三角形 我知道在 CGAL 中 Triangle 3 类提供了 squared area 方法 通过它我们可以计算三角形的面积 有什么方法可以将其应用到多面体方面吗 或者关于如何计算每个面的面积有什么想法吗 这是一个例
  • 从多页 tiff 中提取帧 - C#

    有一个多页 tiff 我想从此 Tiff 文件中提取第 n 页 帧 n 并保存它 如果我的多页 tiff 有 3 帧 在我提取一页 帧后 我想留下 1 张图像有 2 页 帧 并且 1 张图像只有 1 页 帧 下面是一些代码 用于将多帧 ti
  • 在信号/槽处理期间删除 QObject

    我知道从槽处理中删除 QObject 可能会使应用程序崩溃 因为它可能有其他排队的事件 因此 我将使用 obj gt deleteLater 而不是使用 delete obj 据我所知 obj 等待处理所有排队的事件 然后 删除 obj Q
  • 解析 SWIG 接口文件的结构属性

    这是我不久前问过的问题的延续 为通过参数返回的函数创建类型映射 https stackoverflow com questions 12793973 create a typemap for a function that returns
  • 在一个数据库请求中连接 IQueryable 集合

    我使用实体框架 我需要连接两个集合 例如 IQueryable
  • 是一对一的关系不好的策略

    用户始终拥有一个钱包 一个钱包始终属于一位用户 由于我想分离与钱夹相关的属性 我创建了 Wallet 对象并能够跟踪钱交易 我创建了 public Wallet Entity
  • 使用抽象类作为模板类型

    我对c 还是很陌生 来自java 我有一个 stl 类型列表Actor When Actor仅包含 真实 方法就没有问题 我现在想将这个类扩展到几个类 并且需要将一些方法更改为抽象的 因为它们不再具有具体的意义 正如我 从文档中 预期的那样
  • 实体框架中对象属性中的 NULL 值

    Tables Article Author Comment 1篇文章和1位作者可以有 评论 数据库中有 1 篇文章 1 位作者和 1 条评论 问题是 该代码 myBD my bd new myBD var articles by bd Ar
  • Microsoft Graph API 调用无限期挂起

    我正在尝试使用 Microsoft Graph 查询 Azure Active Directory 用户信息 我可以很好地进行身份验证 但是当我尝试查询用户信息时client Users我的应用程序无限期挂起 没有超时 没有错误 只是挂起

随机推荐

  • Windows Phone 8 设备作为感应门禁卡

    Lumia 920 中的 NFC 硬件可以模拟 125 kHz 感应卡吗 看起来 NFC 硬件实现的标准是门禁卡使用的标准的超集 但我对这些无线电标准没有足够的了解 无法理解手机是否只能作为此类信号的接收器或发射器 我还希望获得一篇很好的概
  • 从文件中读取数字C++

    我想从文本文件中读取数字 该文件包含以下数字 3 5 7 9 20 25 30 40 55 56 57 60 62 1 4 7 11 14 25 44 47 55 57 100 5 100 1000 1005 12 1000 1001 空格
  • 在 Node.js 中同时生成的发票具有相同的编号。如何实现独特性?

    在我的 Node js 应用程序中 我想启用生成带有发票的 PDF 的功能 一切都很顺利 直到两个或更多人同时 在不同的机器上 生成发票 然后 系统会提示他们提供具有相同编号的不同发票 例如发票号码 355 这是将发票保存到MySQL的方法
  • 无法编译 yesod,hGetContents 参数无效

    我正在尝试创建 Yesod 项目 但无法退出1st step 以下是我初始化和构建的步骤 stack new someproj yesodweb postgres cd someproj stack build 我没有做任何额外的编码 只是
  • 解析 R 脚本中的命令行参数

    有没有方便的方法来自动解析传递给 R 脚本的命令行参数 类似perl的东西Getopt Long CRAN上有3个包 getopt 类似 C 的 getopt 行为 optparse 受 Python 启发的命令行解析器optparse l
  • 如何在变量中取加号

    我想计算两个数字 这很简单 但是有什么办法可以将运算符放入变量中然后进行计算吗 var x 5 var y 5 var p var z x p y button click function alert z div class button
  • C++ 循环中向量::size() 的性能问题

    在下面的代码中 std vector
  • 覆盖默认的 Java 外观

    我想覆盖 java 的外观和感觉 我只是想以不同的方式显示按钮 我想要 Windows 外观和感觉的所有功能 但只是按钮不同 我希望你明白我的意思 Color color new Color 220 220 220 200 UIManage
  • 为什么调用字符串方法(例如 .replace 或 .strip)不会修改(变异)字符串?

    我尝试使用此代码进行简单的字符串替换 X hello world X replace hello goodbye 为什么不X改变 从 hello world to goodbye world 这是因为Python 中的字符串是不可变的 意思
  • 在 clustermap 上为等于零的值设置特定颜色

    我想在使用seaborn 进行聚类图的图形输出方面获得一些帮助 在我的数据中 我缺少转换为 0 的数据 我想为等于零的值设置白色 为其余值设置调色板 有没有办法在cmap中指出它 import pandas as pd from rando
  • 使用 JavaScript 检测时区缩写

    我需要一种方法来检测给定日期对象的时区 我不需要偏移量 也不想要完整的时区名称 我需要获取时区缩写 例如 GMT UTC PST MST CST EST 等 这可能吗 我得到的最接近的是解析结果date toString 但即使这样也不会给
  • 如何使用Microsoft Graph API获取Office365邮件的MIME内容?

    如何使用 Microsoft Graph API 获取 Office365 邮件的 MIME 内容以便我可以创建 EML 文件 或者是否有其他方法可以使用 Microsoft graph API 创建 Office365 中找到的邮件的 E
  • 从 HttpListener 解析 POST 参数

    假设我有 HttpListener 它监听一些端口和IP 当我发送 POST 请求时 它会捕获它 如何从 HttpListenerRequest 解析 POST 参数 HttpListenerContext context listener
  • VBScript 创建一个多维数组并添加到它?

    这对我来说太棒了哈哈 我几乎检查了谷歌搜索上的每个页面 但我仍然不明白该怎么做 我想在 VB 脚本中创建一个名为 data2 的多维数组 尝试我见过的示例 但出现 下标超出范围 错误 Dim data2 sub grabdata SQL q
  • 在 C# 中使用不同的用户凭据将文件保存到文件系统

    如何使用与当前登录用户不同的用户将文件保存到文件系统 我目前正在使用 NET Framework 4 0 如果您有其他用户的登录凭据 您可以冒充他们 使用 DLL Import 在 Win32 中调用 LogonUser DllImport
  • 安装 Apple 的网络链接调节器工具

    我已经在运行 Lion 的机器上安装了 xcode 4 3 1 我在任何地方都找不到网络链接调节器工具 我已经检查了实用程序文件夹 还有xcode contents developer 目录 没有这样的运气 我是否需要安装特定组件或者该工具
  • CodeIgniter - 声明全局变量的最佳位置

    我只想用一个 variable在几个地方 不仅是视图和控制器 而且在routes php和其他配置文件 我不想要这样的事情 使用 Config 类加载配置文件 使用 CIget instance等等 我只想声明一个给定的 variable
  • 有没有简单的方法在 Windows 版 xampp 中安装 SSH?

    有没有简单的方法在 Windows 版 xampp 中安装 SSH 我不相信是这样 即使可以 您也无法像在 nix 机器上所期望的那样无缝访问 apache 和 mysql 如果你已经死心了 最好的选择就是安装 openssh 服务器 ht
  • 在 Next.js 中将回调从服务器组件传递到客户端组件

    我陷入了创建自定义按钮组件 将其标记为客户端组件 然后传递其onClick来自服务器端组件的回调 它给了我这个错误 error Error Event handlers cannot be passed to Client Componen
  • lambda 函数可以模板化吗?

    在 C 11 中 有没有办法模板化 lambda 函数 或者它本身就太具体而无法模板化 我知道我可以定义一个经典的模板化类 函子 但问题更像是 该语言是否允许模板化 lambda 函数 2018 年更新 C 20 将附带模板化和概念化的 l