LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

http://eel.is/c draft/class.temporary#6.8

Example:
[...]

const int& b = static_cast<const int&>(0); // temporary int has same lifetime as b
int&& c = cond ? id<int[3]>{1, 2, 3}[i] : static_cast<int&&>(0);
                                           // exactly one of the two temporaries is lifetime-extended

Так что всё нормально (см. после примера ещё notes).

Исходная версия xaizek, :

http://eel.is/c draft/class.temporary#6.8

Example:
[...]

const int& b = static_cast<const int&>(0); // temporary int has same lifetime as b
int&& c = cond ? id<int[3]>{1, 2, 3}[i] : static_cast<int&&>(0);
                                           // exactly one of the two temporaries is lifetime-extended

Так что всё нормально.