Читать «Эффективный и современный С++. 42 рекомендации по использованию С++11 и С++14» онлайн - страница 223
Скотт Мейерс
1
Русский перевод — Александреску Андрей.
2
Возможен и более гибкий дизайн, который позволяет вызывающим функциям определить, должны ли использоваться круглые или фигурные скобки в функциях, генерируемых из шаблонов. Подробности можно найти в записи от 5 июня 2013 года в
3
Синдром запястного канала — неврологическое заболевание, проявляющееся длительной болью и онемением пальцев рук. Широко распространено представление, что длительная ежедневная работа на компьютере, требующая постоянного использования клавиатуры, является фактором риска развития синдрома запястного канала. —
4
Применение ключевого слова final
к виртуальной функции препятствует перекрытию этой функции в производном классе. Ключевое слово final
также может быть применено к классу; в этом случае класс становится неприменимым в качестве базового.
5
“As if rule” — правило, согласно которому разрешены любые преобразования кода, не изменяющие наблюдаемое поведение программы. —
6
Обычно в русскоязычной литературе для термина
7
Проверка обычно выполняется окольным путем. Функции наподобие std::vector::push_back
вызывают шаблон std::move_if_noexcept
, вариацию шаблона std::move
, который условно выполняет приведение к rvalue (см. раздел 5.1), в зависимости от того, объявлен ли перемещающий конструктор как noexcept
. В свою очередь, std::move_if_noexcept
консультируется с std::is_nothrow_move_constructible
, а значение этого свойства типа (см. раздел 3.3) устанавливается компиляторами в зависимости от того, объявлен ли перемещающий конструктор как noexcept
(или throw()
).