函数的推导

2023-12-25

假设我们有一个这样的类模板:

template<typename F>
class A
{
public:
  template<typename... Args>
  A(F f, Args... args)
  { /* Do something... */ }
};

现在我想以某种方式使用它,如下所示:

A<int(int)> a(::close, 1);

现在的问题是:有什么办法可以省略<int(int)>因为编译器可以知道这些信息::close?无需保存模板的“设计”。

至于具体任务,我需要设计一个类的模板。此类的对象可以在构造时获取函数和该函数的参数,并稍后调用该函数。


不,你(目前)不能。执行此操作的标准方法是创建“make_like”函数(例如make_pair http://en.cppreference.com/w/cpp/utility/pair/make_pair, make_optional http://en.cppreference.com/w/cpp/utility/optional/make_optional ...):

template<typename F, typename... Args>
A<std::decay_t<F>> make_A (F &&f, Args&&... args) {
    return {std::forward<F>(f), std::forward<Args>(args)...};
}

C++17将引入类的模板参数推导 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0091r2.html这将允许你完全做你想做的事(另见巴里的回答 https://stackoverflow.com/a/38228754/2666289 below).

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

函数的推导 的相关文章

随机推荐

  • 使用区间来分配分类值

    获取以下通用数据 A lt c 5 7 11 10 23 30 24 6 B lt c 1 2 3 1 2 3 1 2 C lt data frame A B 以及以下间隔 library intervals interval1 lt In
  • 一列中的多个图表区域

    I have a chart with multiple chart areas When I press a button a new chart area is being created etc My problem is that
  • 当一列中的单元格与另一列中的单元格不匹配时更改它们的颜色

    我想检查一列中的值是否与另一列中的值相同 每当值不相同时 我想更改这些单元格的颜色 例如 I 栏 AA 栏 两者的值都是从 1318 年到 1500 年的第一个月 阿拉伯历 但我想检查其中哪些值不匹配 例如用黄色将它们着色 在这种情况下 第
  • 信息检索中的语言模型

    我在 IR 工作 任何人都可以指导我 我该如何实现语言模型Whoosh 我已经应用了TD IDF和BM25 我是红外新手 例如 最简单形式的语言模型只是丢弃所有条件上下文 并独立估计每个术语 这样的模型称为一元语言模型 P uni t 1t
  • Ubuntu 20.04升级,Python缺少libffi.so.6

    我最近将操作系统升级到 Ubuntu 20 04 LTS 现在 当我尝试在 Python 中导入 Numpy 等库时 出现以下错误 ImportError libffi so 6 cannot open shared object file
  • 在 ASP.NET 中模拟会员用户

    在一个通用的asp net网站与Membership Roles并启用哈希密码 我想向管理员提供impersonation以便他们可以浏览该网站that用户会的 该网站应该像该用户登录一样运行 然后能够恢复到他们自己的登录状态 实现这一目标
  • 具有环境变量和可重写 CMD 的 ENTRYPOINT

    这允许 ENV VAR传递给foo ENTRYPOINT usr bin foo ENV VAR 这不会 因为传递的是文字字符串 ENV VAR 而不是环境变量的内容 ENTRYPOINT usr bin foo ENV VAR 这允许覆盖
  • Android 获取 Wifi 连接状态

    我目前正在使用NetworkRequest and NetworkCallback方法 谷歌官方推荐 获取Wifi连接状态 并且部分有效 我期待着onUnavailable 将在以下情况下被调用 close app gt turn off
  • Android - 创建可调整大小的视图

    我目前正在开发一个具有可移动和可调整大小视图的仪表板 我现在遇到的问题是我想通过触摸手势调整视图大小 因此 我想到了一个点 将其添加到选择视图中 可以拖动该点来调整所选视图的大小 这与 Android 主屏幕上的调整大小过程类似 即使经过长
  • 如何更改复选框、滑块、单选按钮和选择组件的强调色

    我想更改复选框 滑块 单选按钮和选择组件的强调色 有什么简单的方法可以做到这一点吗 您可以使用新的accent color财产 如果您正在使用Chrome 版本 93 https www chromestatus com feature 4
  • Symfony2 验证器约束 GreaterThan 其他属性

    我的验证是在 yaml 文件中定义的 如下所示 src My Bundle Resources config validation yml My Bundle Model Foo properties id NotBlank groups
  • Codeigniter 会话数据,它们只是 cookie 吗?

    我将在我的登录系统中使用 Codeigniter 的会话数据 但首先我想了解它们 所以我阅读了用户指南 据我了解 Codeigniter 的会话数据是just饼干 这是真的 这意味着如果用户禁用 cookie 他将无法使用 Codeigni
  • 从整数列表中,获取最接近给定值的数字

    给定一个整数列表 我想找到哪个数字最接近我在输入中给出的数字 gt gt gt myList 4 1 88 44 3 gt gt gt myNumber 5 gt gt gt takeClosest myList myNumber 4 有什
  • pytorch.empty 函数中未初始化的数据是什么

    我正在经历pytorch教程并遇到了pytorch empty功能 有人提到空可以用于未初始化的数据 但是 当我打印它时 我得到了一个值 这和有什么区别pytorch rand它还生成数据 我知道 rand 生成 0 到 1 之间的值 下面
  • “System.MissingMemberException:无法找到服务器工厂”启动 Microsoft.Owin 在 TeamCity 中自托管

    当 Teamcity 运行启动自托管 Web 应用程序的集成测试时 测试失败并显示错误 System MissingMemberException The server factory could not be located for th
  • 在 Jenkins 声明性管道中使用 waitForQualityGate

    Jenkins 2 50 中声明性管道中的以下 SonarQube 6 3 分析阶段失败 并在控制台日志中显示此错误 http pastebin com t2ja23vC http pastebin com t2ja23vC 进一步来说 此
  • Asp.Net Core 2.0+ 中模型验证之前的模型标准化

    我在用着自动模型验证 https blogs msdn microsoft com webdev 2018 02 02 asp net core 2 1 roadmap 参见 更好的输入处理 保持我的控制器干净 所以 HttpPost Pr
  • C# 到 C++ 数组?

    我提供了一个库 我知道它使用 C 我这样导入DLL DllImport pst private static extern int pst get sensor ref PSTSensor sensor PSTSensor 是一个结构体 在
  • Android如何对JSONObjects的JSONArray进行排序

    我制作了一个 jsonobjects 的 jsonarray 现在我需要根据 jsonobjects 中的值对 JSONArray 进行排序 以前我对自定义对象的 ArrayList 进行排序 如下所示 比较器 public class K
  • 函数的推导

    假设我们有一个这样的类模板 template