小编Win*_*one的帖子

函数调用是否在构造函数的初始化列表中排序?

考虑:

int f () {
    static int i = 0;
    return i++;
}

struct Test {
    int a, b;
    Test () : a(f()), b(f()) {}
};

Test t;
Run Code Online (Sandbox Code Playgroud)

我知道a之前b由于其声明的顺序而被初始化struct.

我也知道这两次打电话都没有f参加g(f(), f()).

所以我想知道是否保证t.a == 0t.b == 1

c++ operator-precedence undefined-behavior initialization-order language-lawyer

34
推荐指数
2
解决办法
1430
查看次数