@litb: Хм, я тоже не могу это найти. Я предполагаю, что это не определено, тогда ...

троил этот эксперимент сегодня, ответив на какой-то вопрос

struct A { 
  bool &b; 
  A(bool &b):b(b) { } 
  ~A() { std::cout << b; }  
  bool yield() { return true; } 
}; 

bool b = A(b).yield();

int main() { }

b имеет значениеfalse (в результате нулевой инициализации) перед установкойtrue динамической инициализацией. Если временное уничтожено до инициализацииb готово, мы распечатаемfalse, в противном случаеtrue.

Спецификация говорит, что временное уничтожается в конце полного выражения. Это не похоже на заказ с инициализациейb, Так мне интересно

Позволяет ли спецификация реализации печатать обаfalse а такжеtrue в разных пробегах?

Ленточные принтыfalse для вышеупомянутого, в то время как GCC печатаетtrue, Это смущает меня. Я пропустил какой-то текст спецификации, определяющий порядок?

Ответы на вопрос(3)

Ваш ответ на вопрос