变量扩展之间的排序

2023-12-21

对于这个非变量示例:

int     Func1();
double  Func2();
void    MyFunc( int, double );

int  main()
{
    MyFunc( Func1(), Func2() );
    //...
}

没有指定是否Func1() or Func2()首先计算,只是两者都必须在之前完成MyFunc()叫做。

这种排序如何与可变参数的扩展一起工作?

template < typename Func, typename ...Args >
void  MyFunc2( Func &&f, Args&& ...a )
{
    int  b[] = { f( std::forward<Args>(a) )... };
    //...
}

这么说吧f是一个函数对象,在第一次调用后会更改其状态。将要f按顺序调用每个段a?换句话说,将f在第一个项目上被调用a的列表,然后是第二项、第三项等,而不是随机跳过扩展列表?每个项目之间是否存在我们以前所说的序列点?


是的,大括号括起来的初始值设定项列表保证从左到右的求值顺序,而函数调用则不能。所以MyFunc2将正确排序。

维基百科文章对此进行了介绍:https://en.wikipedia.org/wiki/Variadic_templates https://en.wikipedia.org/wiki/Variadic_templates

每个项目之间是否存在我们以前所说的序列点?

不,虽然它使用逗号标记,但它不是the逗号运算符。

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

变量扩展之间的排序 的相关文章

  • Linq - 从表达式 创建表达式

    我有一个谓词Expression
  • 使用 Json.NET 序列化子类

    我正在尝试使用 Json NET 序列化子类 生成的 json 包含超类的序列化属性 但是not子类对象的属性 这似乎与我发现的一个问题有关这里就这样 https stackoverflow com q 5863496 498969 但必须
  • ASP.NET Web 应用程序中的身份验证遇到问题

    我正在尝试对从登录页面登录我的 Web 应用程序的用户进行身份验证 我正在使用本教程 http support microsoft com kb 301240作为指南 它几乎准确地解释了我希望做什么 但是当我输入用户名和密码时 验证不起作用
  • 自动映射器多对多 stackoverflowException

    我遇到以下映射的堆栈溢出 Mapper CreateMap
  • 将字符串作为 PChar 从 CSharp 传递到 Delphi DLL

    我正在尝试将字符串从 C 传递到 Delphi 构建的 DLL Delphi DLL 需要 PChar 这是Delphi导出 procedure DLL Message Location PChar AIntValue integer st
  • 使用 C# 将多个音频样本混合到单个文件中

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个能够创建音频文件 mp3 或 wav 的库 NAudio http www codeple
  • 为什么子函数不销毁GtkWindow?

    这是我的代码 void window first void enter window2 GtkWidget w gpointer data void quit GtkWidget w gpointer data void quit int
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • 组合框下拉位置

    我有一个最大化的表单 其中包含 500px 的组合框控件 停靠在右上角 Width 尝试打开组合框后 列表的一半超出了屏幕 如何强制列表显示在表单中 棘手的问题 我找不到解决这个问题的好办法 只是一个解决方法 添加一个新类并粘贴如下所示的代
  • 无法加载程序集问题

    我收到以下错误 无法加载程序集 错误详细信息 System BadImageFormatException 无法加载文件或程序集 文件 或其依赖项之一 该程序集是由比当前加载的运行时更新的运行时构建的 无法加载 该程序集是使用 Net Fr
  • 如何将 Q 格式整数转换为浮点数(反之亦然)?

    我四处搜寻 找不到一个很好的问题来回答这个问题 给定一个整数 使用Q Format https en wikipedia org wiki Q number format 如何将该数字转换为普通浮点类型 反之亦然 如何将浮点类型转换为Q F
  • 控制台应用程序中使用 Unicode 字符的 _tprintf

    我正在从 Unicode 构建的控制台应用程序 使用 C 和 Visual Studio 2008 执行这个简单的输出 此代码旨在在 Windows 上运行 tprintf L Some sample string n 一切正常 但是如果我
  • 如何将STL容器数据转储到gdb中?

    我无法在 gdb 中转储 STL 无序映射容器值 变量类型是 std unordered map var 我的 gdb 版本 7 7 1 GDB配置 configure host x86 64 linux gnu target x86 64
  • 调用异步方法在视图模型的构造函数中加载数据有警告

    我的视图包含一个 ListView 它显示来自互联网的一些数据 我创建一个异步方法来加载数据并在我的视图模型的构造函数中调用该方法 它有一个警告提示我现在使用await关键字 还有其他解决方案可以在构造函数中异步加载数据吗 有几种可以应用的
  • 我可以将 UseCSharpNullComparisonBehavior 用于单个查询吗?

    我有一个查询 该查询曾经是存储过程 现已转换为 EF 查询 现在已经超时了 使用 SQL Profiler 我可以看到生成的 SQL 的唯一区别是 EF 转变的新行为entity Property value into entity Pro
  • C#:自定义转换为值类型

    是否可以将自定义类转换为值类型 这是一个例子 var x new Foo var y int x Does not compile 是否有可能实现上述情况 我需要超载一些东西吗Foo 您将必须重载强制转换运算符 public class F
  • 传递数组时在 C 中的函数参数中强制指定数组大小

    Context 在 C 中 我有一个以数组作为参数的函数 该参数用作该函数的输出 输出的大小始终相同 我会 让阅读代码的人清楚所需的大小 不过它已经在函数注释中了 理想情况下 编译会输出警告或错误 这样我就可以在编译时而不是运行时防止出现问
  • 如何将System.Windows dll添加到Visual Studio 2010 Express?

    我正在开发一个小型应用程序C and VS2010 as IDE with NET框架4 我想用CaptureSource类以便从笔记本电脑的网络摄像头捕获视频 为此我需要添加一个命名空间System Windows DependencyO
  • C 变量声明的效率 [重复]

    这个问题在这里已经有答案了 例如 在 C 中声明一个变量需要多长时间int x or unsigned long long var 我想知道它是否会让我的代码在类似的事情中更快 for conditions int var 0 code 这
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的

随机推荐

  • Flask-admin:将 inline_models 渲染为列表视图?

    我有一个Motion模型有很多Votes 我将投票显示为inline model in flask admin 是否可以将选票呈现为表格 如list view模板 而不是像这样 使用 Flask admin 中的规则 您可以更改创建表单或编
  • 禁止用 ReplaceAll (/.) 进行替换

    来自 Mathematica 自己的文档 g 1 Hold g 1 g n gt n 1 leads to 2 Hold 1 1 我的问题 有没有办法保护子表达式不被 ReplaceAll 替换 我使用复合结构作为变量 例如 v a b 并
  • javascript电子邮件验证检查条件问题

    example
  • 如果数组中的所有值都相同,如何打印字符串

    我有一个保存数字的数组 int tarningar new int 5 当所有数字都相同时 我想打印 OK 例如与类似的东西system out println ok 我努力了if tarningar 1 tarningar 2 tarni
  • 使用 LINQ/扩展方法重复字符串[重复]

    这个问题在这里已经有答案了 只是我正在调查的好奇心 问题是 简单地重复 乘法 有人会说 字符串 字符n times 我知道有可枚举 重复为了这个目标 但我试图在没有它的情况下做到这一点 LINQ在这种情况下似乎毫无用处 因为在query l
  • 使用正则表达式提取文件名

    如果我只想匹配fileName i e in C Directory FileName cs 以某种方式忽略之前的一切FileName cs使用正则表达式 我该怎么做 我需要这个用于我正在开发的编译用户界面 无法使用编程语言 因为它只接受正
  • 如何修复 React Native 中的“找不到模块”.../template.config”错误

    我正在尝试使用 React Native 创建一个新应用程序react native init MyApp但我收到了这个错误 Downloading template Copying template error Error Cannot
  • UISearchbar 不区分大小写?

    在表视图中 我设置了 UISearchBar 设置委托并添加协议 当用户点击一个单词时 一切正常 除了 网球 的搜索与 网球 不同 如何使搜索栏成为不区分大小写的 UISearchBar 这是我的代码 我认为所有事情都会发生 void se
  • 在 Visual Studio 中使用 NumPy

    我下载了http pytools codeplex com http pytools codeplex com Visual Studio 的 Python 工具 以便我可以在 Visual Studio 中编写 Python 问题是当我尝
  • python 中文本的 n 元语法

    我之前的更新post https stackoverflow com questions 49064114 extracting n grams from tweets in python 进行一些更改 假设我有 100 条推文 在这些推文
  • Freemarker 内置换行功能

    在我的代码中 我使用 n 作为换行符 有人建议我需要避免 n 因为这对于不同的操作系统 UNIX Windows 和 MAC 来说是不同的 并且每个操作系统都会以不同的方式解释这个字符 虽然我看到了预期的行为 但任何人都可以建议 我们是否有
  • 使用 C# 解析 XLS 文件时出现问题

    好吧 让我们看看我是否能理解这一点 我写了一个程序来解析 Excel 文件 它运行得很好 我使用以下命令进入文件 string FileToConvert Server MapPath App Data CP ARFJN FLAG XLS
  • jquery-autocomplete 插件搜索

    有这个jquery 自动完成 https github com dyve jquery autocomplete插入 它允许您仅搜索确切的字符串 所以我们可以说这是数据 apple is good apple grows on tree t
  • 32 位和 64 位操作系统中的双字节大小

    有什么区别吗double http msdn microsoft com en us library system double aspx当我在 32 位和 64 位环境中运行我的应用程序时的大小 如果我没记错的话 32位环境中的doubl
  • 为多语言 ASP.NET MVC Web 应用程序设置 CurrentCulture 的最佳位置

    对于多语言 ASP NET MVC 3 Web 应用程序 我正在确定Thread CurrentThread CurrentCulture and Thread CurrentThread CurrentUICulture在控制器工厂上如下
  • 如何在 C++ (gcc) 中获得完全限定的函数名称,_排除_返回类型?

    这个问题 https stackoverflow com questions 6151558 displaying fully qualified name of the function描述了如何使用 PRETTY FUNCTION 获取
  • Django-taggit prefetch_相关

    我现在正在构建一个基本的时间记录应用程序 并且有一个使用 django taggit 的待办事项模型 我的 Todo 模型如下所示 class Todo models Model project models ForeignKey Proj
  • Maven 构建与依赖树不同

    我正在使用 Maven 3 构建一个具有 3 层的 java 应用程序 服务器 ejb 和 ui EJB项目依赖于Server项目 UI项目仅依赖于EJB 并为Server传递依赖提供排除 当 UI 项目构建为 war 时 服务器依赖项将被
  • NASM x86 使用 extern printf 打印整数

    我尝试在 x86 程序集中使用 printf 打印整数 对于格式字符串printf fmtstring vals 我已经存储了 d作为 fmtd 然后我将 1 放入 ax 将 2 放入 bx 将它们相加并希望使用调用 printf 打印结果
  • 变量扩展之间的排序

    对于这个非变量示例 int Func1 double Func2 void MyFunc int double int main MyFunc Func1 Func2 没有指定是否Func1 or Func2 首先计算 只是两者都必须在之前