将参数包转换为向量

2024-01-04

我试图理解 C++ 中的可变参数模板,但我迷失在以下示例中:想象一个函数富(T,T,T,T)它采用相同类型 T 的可变数量参数并将它们转换为向量。知道如何实施吗?

它应该像这样工作

foo<int>(1,2,3,4) returns std::vector<int> x{1,2,3,4}
foo<double>(0.1,0.2,0.3) returns std::vector<double> x{0.1,0.2,0.3}

If the T在编译时已知的值,您可以将它们作为模板参数传递并编写类似的内容

template<typename T, T ... Is>
void foo() {
   std::vector<T> x { { Is.. } };

   for( auto xx:x )
      std::cout << xx << std::endl;
}

它被称作

foo<int, 2, 3, 5, 7>();

否则你必须将它们作为参数传递;就像是

template <typename T, typename ... ARGS>
void foo (ARGS const & ... args) {    
   std::vector<T> x { { args... } };

   for( auto xx:x ) 
      std::cout << xx << std::endl;
}

它被称作

foo<int>(2, 3, 5, 7);

或者也(推导出类型T从第一个参数开始)

template <typename T, typename ... ARGS>
void foo (T const & arg0, ARGS const & ... args) {    
   std::vector<T> x { { arg0, args... } };

   for( auto xx:x ) 
      std::cout << xx << std::endl;
}

它被称作

foo(2, 3, 5, 7);

- 编辑 -

OP写

它应该像这样工作

foo<int>(1,2,3,4) returns std::vector<int> x{1,2,3,4}
foo<double>(0.1,0.2,0.3) returns std::vector<double> x{0.1,0.2,0.3}

所以我想你可以简单地写

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

将参数包转换为向量 的相关文章

  • 从 PDF 转换为 HTML [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 CMake 编译时更改头文件位置会导致缺少 vtable 错误

    对于一个大型 C 项目 我需要从 qmake 过渡到 CMake 但是在处理一个玩具示例时 我遇到了一些我不理解的行为 示例代码具有单个头文件 当该头文件移动到子目录中时 我收到 MainWindow 类缺少 vtable 的错误 CMak
  • 为什么选项卡页正文不使用 .NET 选项卡控件进行更新?

    我在使用 C Visual Studio 2010 中的 NET TabControl 时遇到一个奇怪的问题 启动 Windows 窗体应用程序 添加一个选项卡控件和一个按钮 向两个选项卡页添加两个不同的标签 以便您可以区分它们 该按钮的作
  • 将 SQL 保留在存储过程中与代码中的优点和缺点是什么

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动
  • 简单、高效的弱指针,当目标内存被释放时设置为 NULL

    有没有简单 高效的弱 保护指针 我需要多个指向同一对象的指针 当删除该对象时 这些指针都会自动设置为 NULL 有一个 主 指针始终用于删除对象 但可以有多个其他指针引用同一对象 以下是一些不太符合我的需求的解决方案 QPointer ht
  • 将多种类型存储为 C++ 字典中的值?

    我想编写一个行为几乎等同于 Python 字典的 C 对象 C 的std map and std unordered map容纳了 Python 字典已有的一些功能 但缺乏最重要的功能之一 即能够添加任意对象和类型 即使不可能 您离实现 P
  • 在 Silverlight 中同步操作

    我有一个 Silverlight 应用程序 它使用操作从模型获取数据 再次从 WCF 服务获取数据 我需要以某种方式同步两个 ActionCallback 或等待它们 然后执行一些代码 Example model GetMyTypeList
  • 尝试从 Web 应用程序访问报告服务时,Internet Explorer 导致 IIS 500 错误

    我有一个 aspx Web 表单页面 它调用托管在 SQL 2012 报告服务服务器上的 SQL 2012 SSRS 报表 并使用报表查看器在 aspx 页面上显示报表 问题是当我单击链接将参数发送到报告服务器并运行报告时 页面挂起 仅在
  • 如何用单反斜杠替换双反斜杠

    我想用单反斜杠替换双反斜杠 Using string destinationFile System IO Path Combine msiDirectory fileName Replace gives C Hg temp LogFile
  • 通过 WCF 提供类对象的数组或列表

    任何提供自定义类对象列表或数组的 WCF 客户端服务器示例都会对我有所帮助 但这是我到目前为止所得到的 这是我想提供的班级系统 namespace NEN Server FS Serializable public class XFS pr
  • 调试器 StepInto 自动生成的代码和 JMC 问题

    我正在使用 MDBG 示例制作托管 NET 调试器 目前 我正在努力解决 StepInto 行为 而 StepOut 和 StepOver 似乎有效 实现Just My Code迈步我在呼唤SetJMCStatus在模块加载时 这工作得很好
  • 如何将多种语言设置放入单个 .clang-format 文件中

    我想为 java javascript 和 c 创建一个 clang 格式 我知道如何转储单一语言的示例配置 但不知道如何合并这 3 个配置文件 有关如何将多种语言配置放入单个文件中的示例 BasedOnStyle LLVM IndentW
  • Serilog 与 Autofac

    我有一个记录器包装器 我想使用以下配置将 serilog 注入其中 var logger new LoggerConfiguration WriteTo RollingFile AppDomain CurrentDomain GetData
  • 在 C# 中将 Exe 文件作为嵌入式资源运行

    我有一个第 3 方 EXE 我只需要从我的 C 应用程序运行它 我的主要目标是对我的 C 文件中的第 3 方可执行文件进行版权保护 有没有更好的方法来做到这一点 我怎样才能做到这一点 首先将嵌入的可执行文件作为资源文件添加到您现有的资源文件
  • std::function 中参数的自动动态转换

    我们有多态类 A 和 B 例如 struct A virtual A struct B final public A void f std cout lt lt f lt lt std endl 我想分配一个变量std function
  • 在异步方法中显示错误消息的更好方法

    事实上我们不能使用await关键字在catch块使得在 WinRT 中显示来自异步方法的错误消息变得非常尴尬 因为MessageDialogAPI 是异步的 理想情况下我希望能够这样写 private async Task DoSometh
  • UWP 关闭信息亭模式

    我有一个发布到 Windows 应用商店的 UWP 应用程序 并且该应用程序可以启动进入信息亭模式 分配访问权限 它工作得很好 但我尝试在应用程序上创建一个按钮来关闭信息亭模式并返回到 Windows 登录屏幕 我尝试了文档中给出的代码 h
  • Lambda 通过引用捕获右值引用

    下面的代码标准正确吗 godbolt https godbolt org z VE0NWz IE by ref 捕获表示临时的转发引用 并从函数返回结果 lambda 按值 在同一个表达式中 当然 存储 lambda 供以后使用会使其包含悬
  • 如何在 C# 中按进程获取打开文件句柄的列表?

    如何在 C 中通过进程 ID 获取打开文件句柄的列表 我也有兴趣挖掘并获取文件名 寻找与流程资源管理器所做的等效的编程 这很可能需要互操作 考虑到对此添加赏金 实现起来非常复杂 哎呀 这很难从托管代码中做到 有一个 大多数事情都可以在互操作
  • 用 C# 解析和查询 SOAP

    我正在尝试解析一个大量命名空间的 SOAP 消息 源也可以在here http tinyurl com n3av6k

随机推荐

  • 使用自定义 WCF 正文反序列化而不更改 URI 模板反序列化

    From 这篇博文 http blogs msdn com b carlosfigueira archive 2011 05 03 wcf extensibility message formatters aspx 我能够创建自定义 WCF
  • Healpy map2alm 和 alm2map 不一致?

    我刚刚开始使用Healpy 并注意到如果我使用地图来获取alm 然后使用这些alm来生成新地图 我不会得到我开始时使用的地图 这是我正在看的内容 import numpy as np import healpy as hp nside 2
  • 使用 AJAX 将值从普通 JavaScript 转换为 PHP

    我想知道如何使用 ajax 和 vanilla javascript 向 php 发送内容 我问你是因为我刚刚找到了 jQuery 解决方案 我知道如果我想收到一些东西 它应该是这样的 var xhttp new XMLHttpReques
  • 通过 CodeIgniter 连接到 SQL Server

    我正在尝试设置 Windows 开发环境 Windows 8 1 with IIS 8 5 running SQL Server 2008RC2 and PHP 5 3 24 代码点火器 2 1 4 我可以通过普通 PHP 脚本中的 PDO
  • Android SetNestedScrollingEnabled 未调用?

    我有一个嵌套的子滚动视图 它设置为禁用滚动 直到父滚动视图完成向上滚动 设置childScrollView setNestedScrollingEnabled false 最初工作 然后重新启用childScrollView setNest
  • HTML5 是否支持点对点(而不仅仅是 WebSocket)

    我使用的语言是 HTML5 兼容浏览器上的 Javascript 我的理解是 WebSockets 需要一个套接字服务器在客户端之间来回传输推送通知和消息 HTML5 是否有不需要套接字服务器的实际点对点功能 有谁见过 Javascript
  • sonarqube 中的 C# 项目

    当我运行 sonar runner 来分析我的简单 C 项目时 分析因 SonarLint Runner exe 权限被拒绝错误而终止 ERROR Error during SonarQube Scanner execution ERROR
  • 开玩笑设置“语法错误:意外的令牌导出”

    我正在对当前没有测试的现有项目实施测试 我的测试无法编译node modules 进口 Users me myproject node modules lodash es lodash js 10 export default as add
  • Azure 搜索服务中的点击突出显示

    我是 Azure 搜索服务的新手 我想使用 Azure 搜索服务的命中突出显示功能 我正在使用 NET SDK NuGet 包进行 azure 搜索 我使用 SearchParameter 对象来提及命中突出显示字段以及我需要的前标签和后
  • 在 Firebase Cloud Functions 项目中生成 Swagger 文档

    是否可以从 firebase 云函数中的函数注释生成 Swagger Spec 文件 如果是的话 我们该怎么做呢 我看到云函数代码更像是无服务器 所以想知道这是否可能 我还没有找到自动的方法 但是有很多库可供选择 我在 Firebase F
  • Swinject - 对成员的模糊引用

    我在用Swinject https github com Swinject Swinject in my Swift 3应用程序 当我尝试时 let container Container container register Networ
  • 什么时候适合使用UDP而不是TCP? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 由于 TCP 保证数据包传送 因此可以被认为是 可靠的 而 UDP 不保证任何东西 并且数据包可能会丢失 在应用程序中使用 UDP 传输数
  • Swift Firebase 检查用户是否存在

    What am i doing wrong I have a database structure like the one shown in this image In appleDelegate swift i just want to
  • Apache Tiles 和 Spring MVC 中的全局异常页面

    当抛出未处理的异常时 例如RuntimeException 然后我想显示一个常见的错误页面 我想实现一些目标 重用 HTML 模板 使用带有标头等的通用 框架 并将异常信息放入正文中 在正文文档中提供有关异常的一些基本信息 我正在使用 Ap
  • 使用 LINQ 证明一组要求可以通过一组值来满足

    这是发布的问题的子集here https stackoverflow com questions 16703082 crafting a linq based solution to determine if a set of predic
  • JDBC SQL 别名不起作用

    我正在尝试在我的 java web 应用程序中运行以下查询 SELECT platform AS Platform FROM edb cases 该网络应用程序工作正常并且能够执行所有查询 但是每当我使用别名 通过 AS 时 生成的数据集都
  • Chain React setState 回调

    我需要按顺序加载三个不同的 json 文件并使用 fetch 原因是我正在使用 nextjs 导出 并且我需要动态读取这些文件 所以我在需要时获取它们 即使在出口 第一个文件包含用于创建第二个文件的 url 的数据 依此类推 因此每次获取都
  • 如何使 $(document).ready() 函数全局可用?

    我这里有一个有趣的问题 可能听起来很愚蠢 但就是这样 使用 jQuery 的 Ready 函数 我定义了一些函数 如下所示 function var function1 function data do something var func
  • javascript_include_tag Rails 4 在生产中生成“/javascripts/”而不是“/assets”

    我有一个 Rails 4 应用程序 在头脑中 在开发中 呈现以下 HTML 并加载 Modernizr 在生产中 呈现以下 HTML modernizr 是not已加载 404 未找到 在生产中 assets modernizr j
  • 将参数包转换为向量

    我试图理解 C 中的可变参数模板 但我迷失在以下示例中 想象一个函数富 T T T T 它采用相同类型 T 的可变数量参数并将它们转换为向量 知道如何实施吗 它应该像这样工作 foo