相关疑难解决方法(0)

调用函数对象时如何保证参数评估的顺序?

关于如何在使用std :: make_tuple时避免构造函数的未定义执行顺序的问题的答案导致了一个讨论,在此期间我了解到构造函数可以保证参数评估的顺序:使用braced-init-list命令保证从左到右:

T{ a, b, c }
Run Code Online (Sandbox Code Playgroud)

表达式a,bc,按给定的顺序进行评估.即使类型T只定义了普通的构造函数,也是如此.

显然,并非所有被调用的都是构造函数,有时候在调用函数时保证求值顺序会很好,但是没有像brace-argument-list这样的东西来调用函数,并且定义了对它们的参数的评估顺序.问题变成:构造函数的保证是否可以用于构建函数调用工具(" function_apply()"),并具有用于评估参数的排序保证?要求调用函数对象是可以接受的.

c++ c++11

18
推荐指数
2
解决办法
1894
查看次数

如何返回可变参数模板的最后一种类型?

例如

template<typename... Ts>
LastTypeOfTs f();
Run Code Online (Sandbox Code Playgroud)

如何返回最后一种可变参数模板?

c++ variadic-templates c++11

7
推荐指数
1
解决办法
366
查看次数

标签 统计

c++ ×2

c++11 ×2

variadic-templates ×1