相关疑难解决方法(0)

在C++中对f(g(),h())的评估顺序

这是对C++实现的一种后续行为,理论上可以并行化两个函数参数的评估吗?

假设我有以下C++ 11程序:

#include <cstdio>
using std::printf;
int g() { printf("1\n"); printf("3\n"); return 2; }
int h() { printf("2\n"); printf("4\n"); return 3; }
void f(int a, int b) { printf("%i\n", a+b); }
int main() { f(g(), h()); }
Run Code Online (Sandbox Code Playgroud)

当然可以观察到以下输出:

1 3 2 4 5
2 4 1 3 5
Run Code Online (Sandbox Code Playgroud)

1 2 3 4 5怎么样?

(据我所知,唯一的限制是1在3之前测序,2在4之前测序,3和4在5之前测序)

c++ language-lawyer c++11

4
推荐指数
1
解决办法
258
查看次数

C/C++ - 评估函数调用中的参数

可能重复:
功能参数的评估顺序

在C/C++中使用以下结构是否安全?

f(g(), h());
Run Code Online (Sandbox Code Playgroud)

其中g()预期要被评估第一,然后h().

所有编译器都在所有体系结构上显示相同的行为吗?

c c++ multiplatform semantics

0
推荐指数
1
解决办法
288
查看次数

标签 统计

c++ ×2

c ×1

c++11 ×1

language-lawyer ×1

multiplatform ×1

semantics ×1