Size: a a a

2020 August 02

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
Обязан. Но вот что &&=delete будут соблюдать — полагаться на это не могу
Это защищает тебя от ошибки и не более
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
И буду дальше при виде ссылке руками смотреть лайфтаймы
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
И буду дальше при виде ссылке руками смотреть лайфтаймы
Если конвенция не проебана, вид выражения уже указывает лайфтаймы
источник

CD

Constantine Drozdov in pro.cxx.holywars
get_t().member_cref(); //FAIL
источник

CD

Constantine Drozdov in pro.cxx.holywars
get_t_cref().member_cref(); //OK
источник

CD

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

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Constantine Drozdov
get_t().member_cref(); //FAIL
Это прекрасно. Но работает только в предположении, что другие разработчики будут &&=delete писать
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
Это прекрасно. Но работает только в предположении, что другие разработчики будут &&=delete писать
Нет, это работает в предположении, что тебя не наебали и get_t_cref вернет ссылку
источник

CD

Constantine Drozdov in pro.cxx.holywars
get_t().member_cref() - всегда проебан лайфтайм, ты пытаешься у временного объекта cref вытащить
источник

CD

Constantine Drozdov in pro.cxx.holywars
get_t_cref().member_cref() - никогда не проебан лайфтайм
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Constantine Drozdov
get_t().member_cref() - всегда проебан лайфтайм, ты пытаешься у временного объекта cref вытащить
Понятно что он проёбан. Но в одном случае об этом тебе скажет компилятор, в другом случае ручной аудит
источник

CD

Constantine Drozdov in pro.cxx.holywars
/dev/urandon ¯\_(ツ)_/¯
Понятно что он проёбан. Но в одном случае об этом тебе скажет компилятор, в другом случае ручной аудит
Именно так, но лучше ручного аудита все равно ничего не будет
источник

CD

Constantine Drozdov in pro.cxx.holywars
Предполагаемый способ вообще единственный, кто обнаруживает все эти проблемы не вручную, если разработчик не лентяй
источник

CD

Constantine Drozdov in pro.cxx.holywars
Если тебе похуй ты делаешь
for (auto x : utils::copy_of(f()[0]))
и тебе похуй что там справа
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx.holywars
Ну вот я и говорю, что от ручного аудита не уйти, если нельзя на это предположение рассчитывать https://t.me/rustjerks/478744
источник

CD

Constantine Drozdov in pro.cxx.holywars
Так ты и не рассчитываешь офк, ты по конвенции читаешь лайфтаймы когда пишешь)
источник

CD

Constantine Drozdov in pro.cxx.holywars
Constantine Drozdov
Если тебе похуй ты делаешь
for (auto x : utils::copy_of(f()[0]))
и тебе похуй что там справа
utils::copy_of снимает ссылочность с типа, но оно скопирует const& возврат
источник

CD

Constantine Drozdov in pro.cxx.holywars
Там еще отдельная ебота со шнягами, которые называются в этой локальной конвенцией _view/_cview, возвращенный объект завязан лайфтаймом с this
источник

CD

Constantine Drozdov in pro.cxx.holywars
Но там со ссылочностью как раз все понятно - иди на хуй вызывать это на temporary
источник

CD

Constantine Drozdov in pro.cxx.holywars
Блин, может уже поднять жопу и описать все эти наработки про контроль лайфтаймов? В частности про использование лямбд в духе [] (auto const& arg) { /*deal with arg*/ } (get_t_view());
источник