Size: a a a

2020 August 02

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Это спец правило в языке
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
Лайфтайм проэкстендится до конца жизни ссылки, всё ок
auto& не скомпилируется вообще-то
источник

CD

Constantine Drozdov in pro.cxx.holywars
а вот auto const& проэкстендится
источник

CD

Constantine Drozdov in pro.cxx.holywars
а теперь внимание вопрос
источник

CD

Constantine Drozdov in pro.cxx.holywars
почему вы не написали
for (auto x : f())
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Constantine Drozdov
почему вы не написали
for (auto x : f())
Потому что правила auto через жопу написаны
источник

AZ

Alexander Zaitsev in pro.cxx.holywars
Constantine Drozdov
почему вы не написали
for (auto x : f())
потому что я не ебу, как это работает
источник

CD

Constantine Drozdov in pro.cxx.holywars
Alexander Zaitsev
потому что я не ебу, как это работает
оно работает как
auto&& tmp = f()
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Я бы всегда писал итераторы явно как в C++03
источник

AZ

Alexander Zaitsev in pro.cxx.holywars
Constantine Drozdov
оно работает как
auto&& tmp = f()
спасибо, теперь пойду почитаю, как работает auto&&
источник

AZ

Alexander Zaitsev in pro.cxx.holywars
(вспомню)
источник

CD

Constantine Drozdov in pro.cxx.holywars
Alexander Zaitsev
спасибо, теперь пойду почитаю, как работает auto&&
как при форварде
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Alexander Zaitsev
спасибо, теперь пойду почитаю, как работает auto&&
И decltype(auto&&)
источник

AZ

Alexander Zaitsev in pro.cxx.holywars
Constantine Drozdov
как при форварде
збс, вспомнил. только мне это всё не надо
источник

AZ

Alexander Zaitsev in pro.cxx.holywars
потому что у меня сверху уже переменная и всё работает
источник

CD

Constantine Drozdov in pro.cxx.holywars
Alexander Zaitsev
потому что у меня сверху уже переменная и всё работает
а вот и нет
источник

CD

Constantine Drozdov in pro.cxx.holywars
в данном случае, конечно,
auto const& tmp = f();
то же самое, что
auto&& tmp = f()
то же самое
for (auto x : f())
источник

AZ

Alexander Zaitsev in pro.cxx.holywars
Constantine Drozdov
а вот и нет
хз, как у тебя, а у меня всё работает
источник

CD

Constantine Drozdov in pro.cxx.holywars
Alexander Zaitsev
хз, как у тебя, а у меня всё работает
auto const& x = f()[0]
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Constantine Drozdov
auto& не скомпилируется вообще-то
Тогда тем более джун пойдёт переписывать, чтоб работало
источник