avva: (Default)
[personal profile] avva
C++ Rvalue References Explained

Отличная статья об одном из новшеств стандарта C++11 - так называемых "rvalue references". Оказывается, это совсем не страшная штука, и в этой статье всего из 11 страниц автор подробно объясняет, зачем они нужны, как их использовать, и почему, если вы собираетесь использовать rvalue references вместе с exceptions в одном и том же коде, лучше сразу застрелиться.

Процитирую прекрасную таблицу ссылок на ссылки:
  • A& & becomes A&
  • A& && becomes A&
  • A&& & becomes A&
  • A&& && becomes A&&

Date: 2012-11-04 03:52 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Программист на С++ имеет все шансы состариться и уйти на пенсию, всю жизнь пользуясь rvalue references, и не зная этого (грубо говоря, если я не пишу performance intensive libraries, то они мне не нужны). У программиста на Хаскелле возможности не знать, что такое монады, нет.

Date: 2012-11-04 03:58 pm (UTC)
From: [identity profile] cmm.livejournal.com
грубо говоря, если я не пишу performance intensive libraries, то они мне не нужны

зачем же тогда мучить себя крестами?
(это риторический вопрос).

Date: 2012-11-04 05:51 pm (UTC)
From: [identity profile] smilga.livejournal.com
Можно подумать, есть зачем мучить себя крестами даже и человеку, пишущему performance intensive libraries.

Date: 2012-11-04 05:53 pm (UTC)
From: [identity profile] cmm.livejournal.com
"это другой вопрос".

Date: 2012-11-04 06:27 pm (UTC)
From: [identity profile] chainiksu.livejournal.com
Ну, у человека, пишущего performance intensive libraries, всего две альтернативы - с крестами и без.

Date: 2012-11-04 06:35 pm (UTC)
From: [identity profile] smilga.livejournal.com
Почему две? Можно ещё как минимум прямо на ассемблере.

Date: 2012-11-04 08:32 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Угу. Одна альтернатива — фортран, а другая — застрелиться. Во втором случае действительно часто фигурирует один или несколько крестов.

Date: 2012-11-04 04:09 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Wishful thinking. У программиста на Хаскеле есть все возможности умереть, не узнав, что такое монада. Он просто будет думать, что знает.

Date: 2012-11-04 04:10 pm (UTC)
From: [identity profile] cmm.livejournal.com
"most, in fact, do".

Date: 2012-11-04 04:16 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Хочется верить, что большинство программистов на Хаскеле пока еще все же живо. Так что не все потеряно, по крайней мере теоретически.

Date: 2012-11-04 04:25 pm (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
И еще. Само наличие в языке темных углов вредно и опасно, даже если считать, что большинству программистов заходить туда не нужно. Как сказал поэт, Совершите вы массу открытий//Иногда не желая того O:-)

Date: 2012-11-04 06:31 pm (UTC)
From: [identity profile] francis-drake.livejournal.com
Это аргумент в ползьу какой заявки?

Date: 2012-11-04 06:53 pm (UTC)
From: [identity profile] irene221b.livejournal.com
Последние 11 лет пишу исключительно перформансе-интенсив, пока как-то обходилась без таких фокусов.

Нет, если человек отполировал свой код до такого блеска, что его боттлнек теперь живет в этой дилемме r-value vs l-value, то респект, конечно, но что-то не верится в существование этого человека.

Date: 2012-11-04 07:12 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Мне кажется, ситуация, в которой значительная часть времени процессора тратится на copy constructors и assignment operators - не такая уж редкая.

Date: 2012-11-04 07:14 pm (UTC)
From: [identity profile] irene221b.livejournal.com
Them bastards should have private declaration in any self-respecting class anyway.

Date: 2012-11-04 07:14 pm (UTC)
From: [identity profile] dimrub.livejournal.com
А как быть с stl containers?

Date: 2012-11-04 08:58 pm (UTC)
From: [identity profile] potan.livejournal.com
Есть. По большому счтету достаточно счиать монадой операцию ввода-вывода, а со списками и другими контейнерами работать по простому. Более менее глубокое понимание монад требуется для разработки каких-нибудь обобщенных библиотек или для особо компаткной (не обязательно эффективной) записи алгоритмов.

January 2026

S M T W T F S
    1 2 3
4 5 6 7 8 910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 9th, 2026 10:27 am
Powered by Dreamwidth Studios