std::array 的推导指南

2023-12-14

我浏览了《C++ 模板独特指南》一书,并尝试了解其中的推导指南std::array作品。 关于标准的定义,声明如下

template <class T, class... U>
array(T, U...) -> array<T, 1 + sizeof...(U)>;

例如,如果在 main 中创建了一个数组

std::array a{42,45,77} 

扣除是如何进行的?

谢谢


扣除是如何进行的?

这很简单。

Calling

std::array a{42,45,77}

match

array(T, U...)

with T = decltype(42) and U... = decltype(45), decltype(77)那是T = int and U... = int, int.

所以类型a{42,45,47} become array<T, 1 + sizeof...(U)>, so std::array<int, 1 + sizeof...(int, int)>, so std::array<int, 1 + 2>那是std::array<int, 3>

换句话说:提取参数的类型;第一个 (T) 用于给出数组类型(第一个模板参数);其他的只是为了计算(sizeof...(U))。但是,对于模板第二个参数,重要的是还要计算第一个参数(类型为T, 所以1 in 1 + sizeof...(U)).

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

std::array 的推导指南 的相关文章

  • 使用可加载内核模块修改帧缓冲区(/dev/graphics/fb0)参数

    Problem 我必须配置 Android 平台使用的各种 LCD 显示器 几乎在所有情况下 都没有针对感兴趣的 LCD 显示器免费提供的电气规格 但通过经验和逆向工程 可以很好地猜测参数 我正在尝试使用可加载内核模块来微调显示参数 也欢迎
  • HTML 文档

    有没有一个工具可以从 VS2010 生成的 XML 文档文件生成 HTML 页面 我在谷歌上搜索了这样的工具 但没有找到 我下载并安装了SandCastle 但我不明白如何使用它 尝试使用Sandcastle 帮助文件生成器 http sh
  • 在 2 个 .c 文件之间共享函数

    dir1有dir2 file1 c和file1 h dir2 有 file2 c 现在 如果我想在 file2 c 中访问 file1 c 中定义的函数 我需要在 file1 h 中声明它并在 file2 c 中包含 file1 h 这是一
  • 如何将 CroppedBitmap 转换为 BitmapImage

    我正在尝试将 CroppedBitmap 转换为 BitmapImage 编辑 不使用内存流 我尝试过直接转换它 似乎这不是一个选择 这应该没那么难 我正在尝试剪切 BitmapImage 的一部分 并创建一个仅包含新裁剪的 Bitmap
  • 如何从 std::vector 中删除元素而不调整其大小

    迭代器擦除 迭代器位置 迭代器擦除 首先是迭代器 迭代器最后 擦除元素 从向量中删除 容器可以是单个元素 位置 或一系列元素 第一个 最后一个 这有效地减少了向量 大小除以元素数量 删除 调用每个元素的 之前的析构函数 and remove
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • 如何将 QSerialPort 模块添加到 CMake 中?

    我想将 QSerialPort 模块添加到 CMake 中 根据我的理解 我需要将QT 串口添加到 pro中 我只想使用 CMake 所以我尝试编译简单的 CMake 文件 但有错误 QtCore 正在工作 qDebug 可以毫无问题地显示
  • 如果 .txt 文件不存在,则创建一个,如果存在则追加新行

    我想创建一个 txt 文件并写入它 如果该文件已经存在 我只想添加更多行 string path E AppServ Example txt if File Exists path File Create path TextWriter t
  • Linux C++ 调试器

    我正在寻找完美的 Linux C 调试器 我不期望成功 但搜索应该提供丰富的信息 我是一个非常有能力的 gdb 用户 但 STL 和 Boost 很容易压垮我的调试技能 并不是说我无法深入了解数据结构的内部结构 而是它需要很长时间 我通常会
  • 如何覆盖 Template Toolkit 模板文件中的 WRAPPER?

    有没有办法禁用WRAPPER那是设置在新的 配置 http search cpan org dist Template Toolkit lib Template pm 通过模板或临时覆盖parse 我想要一个默认值WRAPPER 我将用于
  • UWP - 绑定枚举差异

    我遇到了一个非常有趣的问题 假设 UWP 应用中有以下 XAML 页面内容
  • 如何让 PCRE 与 C++ 一起使用?

    这是一个新手问题 但我希望我能尽可能清楚地表达我的问题 我正在尝试用 C 进行模式匹配 我已经从以下位置下载了 PCRE 的 Win32 版本here http gnuwin32 sourceforge net packages pcre
  • 嘲笑会员用户

    我目前正在开发一个 asp net mvc 2 应用程序 它使用默认的 SqlMembershipProvider 进行身份验证 我已经实现了一个控制器方法 通过调用读取当前用户的 ProviderUserKeyMembership Get
  • 如何在Windows Azure上调用ffmpeg.exe转换音频文件?

    我在 Windows Azure 上运行 Web 角色来接收 AAC 音频文件 通过 base64 字符串上传 并将它们存储到 blob 中 现在效果很好 接下来 我还必须将它们转换为 MP3 并将 MP3 存储到 blob 中 我决定使用
  • 简单的喷射器将具体类型与生活方式结合起来

    我正在寻找一种可以使用指定的生活方式注册具体类型的方法 基本上如下所示 public void SomeFunction Type concrete Lifestyle lifestyle gt container Register con
  • 矩阵行列式算法 C++

    我是编程新手 我一直在寻找一种找到矩阵行列式的方法 我在网上找到了这段代码 但我很难理解这里的算法 我对递归的基础没有问题 但继续和主循环我很难理解 非常感谢任何可以向我解释该算法的人 int determ int a MAX MAX in
  • PC 上 XNA 中的信箱和缩放

    有没有一种方法可以让我基本上以 1080p 或 720p 作为默认分辨率来开发 XNA 游戏 然后根据设置的分辨率将游戏中的所有内容缩放到适当的大小 而不必在每个 Sprite 中设置缩放因子Draw 方法 我的想法是 我可以基于 1080
  • 更快的 WinSock sendto()

    我使用的是 Windows Server 2008 我的程序是用 C 编写的 我在 while true 循环中使用 WinSock2 和 sendto 来发送数据包 代码如下 while true if c snd gt max c sn
  • 如何以一对一/零关系更新员工和身份用户

    我正在尝试更新员工记录 也想更新身份用户 如果我先单独更新身份用户 例如 UserManager Update user Context Entry employee State System Data Entity EntityState
  • 从不同的线程访问对象

    我有一个服务器类 它基本上等待来自客户端的连接 在该类中 我创建了一个 NetworkStream 对象 以便能够从客户端接收字节 由于 NetworkStream Read 方法不是异步的 这意味着它将等到从客户端读取字节才能继续执行类似

随机推荐

  • JavaFX 创建弹出窗口,无需外部库

    我怎样才能创建像这样的弹出窗口DatePicker班级来自javafx scene control DatePicker如这里所示 显示时 弹出窗口应位于所有其他组件的顶部 如此处所示 弹出窗口位于TextField 找到了一个非常简单的解
  • 关于异步返回类型

    想知道为什么我们应该指定这一点async方法确实返回任务对象 指定它似乎是多余的async关键字加上它很混乱 因为你并没有真正创建Task object 据我了解 编译器确实发出了创建任务对象所需的代码 无论是在等待调用还是用新任务包装返回
  • Rails 3:如何从 js.erb 文件调用 javascript 函数

    现在我已经升级到 Rails 3 我正在尝试找出分离和重用 javascript 片段的正确方法 这是我正在处理的场景 我有一个包含两个区域的页面 一个区域包含可拖动的元素 另一个区域包含可放置的元素 当页面加载时 我使用 jQuery 来
  • 单例模式的问题

    过去几天我一直在阅读有关单例模式的内容 人们普遍认为 需要它的场景很少 如果不是罕见的话 可能是因为它有自己的一系列问题 例如 在垃圾收集环境中 这可能是内存管理方面的问题 在多线程环境中 它可能会导致瓶颈并引入同步问题 从测试的角度来看令
  • 是否可以在 Java 运行时设置环境变量?

    是否可以在 Java 运行时设置环境变量 应用 在Java 1 5 java lang System 类中有 getenv 方法 我会 只需要一个 setenv 方法 是否可以修改java进程本身的环境变量 不在子进程中 通过JNI可以实现
  • android 检查数据库中是否存在记录

    我想检查 SQLite 数据库中是否存在记录 这是我到目前为止所做的 当我搜索已经存在的记录时 我从列表中的 EditText 获取值 code from activity class public View OnClickListener
  • 构建 DOM 中任何给定节点的 querySelector 字符串值

    我正在尝试找到一种方法来构建任何给定节点的 querySelector 字符串 换句话说 选择页面上的任何节点 是否可以遍历 DOM 并构建一个字符串 允许我将生成的字符串传递给 document querySelector 并取回我选择的
  • “class boost::asio::async_result”中没有名为“completion_handler_type”的类型

    我正在尝试编写一个可以使用 boost spawn 调用的堆栈协程 协程内部启动一个线程 等待线程结束 并获取线程生成的一个整数值作为协程的返回值 但是 我遇到了一个错误 有专家可以帮我看一下吗 我的环境是 Ubuntu22 04 GCC9
  • 按日期获取维基百科修订 ID 的 API [已关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有任何API可以按日期获取维基百科修订ID 而不是检查所有修订历史记录并提取该日期之前的最新修订 谢谢你 The 修订查询 API允许您传递时间
  • 将带有 html 的字符串保存为图像

    我有一个包含网页中整个 html 的字符串 我想将此字符串保存为具有所有 html 规则的图像 最后有来自网页的图像 我该如何用c 和asp net解决这个问题 您可以使用以下组件将 HTML 文件转换为 PDF http code goo
  • Cython:创建数组抛出“常量表达式中不允许”

    我尝试将一个复杂的函数从 Python 重写为 Cython 以大幅加快速度 但遇到以下问题 在使用 hh vers vector pyx 编译函数时 setup ext modules cythonize hh vers vector p
  • Pushl %esp 是在存储之前还是之后更新 ESP?

    The pushlY86 指令将堆栈指针减 4 并将寄存器值写入内存 所以并不清楚处理器执行指令时应该做什么pushl esp 因为被压入的寄存器正在被同一指令更改 可能发生两种可能的事件 1 推入原值 esp 或 2 压入递减的值 esp
  • 使用 Mat OpenCV 访问像素

    我想使用 OpenCV 2 3 访问 RGB 像素 我正在尝试这样 但就像每个像素在帧后都是相等的 因为我没有输出 图像来自我的网络摄像头 我可以看到它们 顺便说一句 红色 0 THX Mat frame Mat oldFrame Vide
  • awk中的元编程,将文件转换为html表格格式

    我有以下文件 table txt 逗号分隔 1 Example Title COL1 COL2 COL3 COL4 COL5 BRCC ACGC 15869 105A 1 BCAS GAAG 73345 369T 2 模板 awk func
  • 如何有效地让“ParentFont = False”子控件使用与父控件相同的字体名称?

    大多数 VCL 控件都有Fonts and ParentFont财产 这是一个很好的做法ParentFont True并且字体将遵循其父字体Name Height and Color 这使得控件之间具有统一的视觉效果 但是 我们可能希望通过
  • 正则表达式匹配整行

    我是脚本编写新手 一直在阅读有关如何使用正则表达式的内容 我想获取与模式匹配的完整行 我的输出是 64 bytes from 33 33 33 33 icmp seq 9 ttl 254 time 1 011 ms 33 33 33 33
  • 使用 PHP DOMDocument 时 nextSibling 不起作用

    我尝试使用以下元素获取nextSibling并且以下代码不起作用 我有一个错误如下 PHP 警告 为 php dom php 第 35 行中的 foreach 提供的参数无效 这肯定是由 foreach 循环中的 null 值引起的 但如果
  • 某些提交中缺少 git-svn-id

    我有一个旧的 SVN 存储库 我使用它签出了git svn为了解决这个问题并推送到 Heroku 我做得相当标准git push heroku master git svn rebase git svn dcommit跳舞 一切都很好 然而
  • 数据操作 - 当值为字母数字时排序索引

    我想知道应该如何解决这种数据操作困境 在索引级别的值是字母数字的数据框中对多索引的索引进行排序的最佳方法是什么 这些值为 u 0 u 1 u 10 u 11 u 2 u 2Y u 3 u 3Y u 4 u 4Y u 5 u 5Y u 6 u
  • std::array 的推导指南

    我浏览了 C 模板独特指南 一书 并尝试了解其中的推导指南std array作品 关于标准的定义 声明如下 template