С++: порядок инициализации объявления переменной

Когда я определяю некоторые переменные вроде этого:

int a = pop(), b = pop(), c = pop();

дает ли С++ гарантию, что сначала будет инициализирован a, затем b, а затем c? или порядок не определен?

Ответы

Ответ 1

[dcl.decl]/3 говорит

-3- Каждый декларатор инициализации в декларации анализируется отдельно, как если бы он был в декларации сам по себе.

Это означает, что ваш код обрабатывается следующим образом:

int a = pop();
int b = pop();
int c = pop();