Ответ 1
Я предполагаю, что они ссылаются на любые временные привязки к ссылкам. Время жизни временного продлевается до срока службы ссылки, тогда как другие временные файлы могут быть уничтожены.
Чтение статьи 1.9/14 проекта С++ 0x. Там я нахожу:
Каждое вычисление значения и побочный эффект, связанные с полным выражением, секвенируются перед вычислением каждого значения и побочным эффектом, связанным со следующим полным выражением, которое должно быть оценено. 8)
И в сноске 8 говорится
8) Как указано в 12.2, после вычисления полного выражения выполняется последовательность нулевых или более вызовов функций деструктора для временных объектов обычно в обратном порядке построения каждого временный объект.
Что это значит "обычно"? Я думал, что верный порядок разрушения был правилом.
Я предполагаю, что они ссылаются на любые временные привязки к ссылкам. Время жизни временного продлевается до срока службы ссылки, тогда как другие временные файлы могут быть уничтожены.
Наряду с ответом Mark B (что довольно хорошо) возникает еще одна ситуация: если вы создаете временный объект типа, доступ к которому осуществляется через передовой итератор, объекты (очевидно, достаточно), созданные в порядке, поддерживаемом итератором и также уничтожается в том же порядке (а не наоборот - потому что итератор этого не поддерживает). Я не помню точно, но я, похоже, вспоминаю то же самое (или, по крайней мере, разрешено), даже если рассматриваемый контейнер будет поддерживать обратную итерацию (поэтому, по-видимому, этот код может игнорировать тип контейнера/итератора).