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:01 pm (UTC)
From: [identity profile] winpooh.livejournal.com
Мне кажется, основная премудрость там состоит в двух строчках на стр.3:
Rvalue references allow a function to branch at compile time (via overload resolution)
on the condition "Am I being called on an lvalue or an rvalue?".

"Остальное - комментарий".

Date: 2012-11-04 03:25 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Да. Как только я это в свое время понял сам при чтении разнообразных operator+ для std::string, наступило просветление.

Date: 2012-11-05 12:06 am (UTC)
From: [identity profile] ak-47.livejournal.com
Вот хотелось бы, чтобы просветлений требовалось поменьше. Чтобы было всё скучно и предсказуемо.

Date: 2012-11-05 03:58 am (UTC)
From: [identity profile] spamsink.livejournal.com
Я списываю это на малость педагогического таланта у большинства описывающих новые возможности С++.

Date: 2012-11-04 04:26 pm (UTC)
From: [identity profile] asox.livejournal.com
Вот именно.

Date: 2012-11-04 08:52 pm (UTC)
From: [identity profile] potan.livejournal.com
Когда мне еще не хватило ума отказаться от плюсов, lvalueвость оператора [] у mapов доставила мне пару веселых моментов...

Date: 2012-11-05 03:59 am (UTC)
From: [identity profile] spamsink.livejournal.com
Это не баг, а фича, это надо запомнить. :)

Date: 2012-11-05 09:48 am (UTC)
From: [identity profile] potan.livejournal.com
Для тренировки памяти (программиста) C++ вполне подходит.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 10:15 am
Powered by Dreamwidth Studios