Комментарии 14
Долго вытался понять из названия, что такое "Назначенная инициализация". Потом понял, что речь про вот это https://en.cppreference.com/w/cpp/language/aggregate_initialization#Designated_initializers. Я понимаю, что designated переводится как "назначенный", но получается как-то уже очень неинтуитивно. Сталкивался с переводом "обозначенный" в контексте языка C, который тоже кажется не очень удачным.
struct A { int x; int y; int z; };
A b{.x = 1, .z = 2}; // ok, b.y initialized to 0
Интересно, есть ли какие-нибудь ещё варианты перевода. Может поискать в других языках программирования (например в C# похожая конструкция с with)? Мне пока приходят только варианты перевести "выборочная", "уточняющая" или "именованная инициализация".
Вот сходу не сказать. Она же действительно и выборочная, и уточняющая, и именованная ?. С переводом терминов вообще часто тяжело. Типичная первая мысль: «Ну что за ерунда, я бы лучше придумал!..» А как попробуешь действительно придумать, понимаешь, что переводчики тоже голову поломали, пока пришли к тому или иному решению. Если альтернатива и приходит в голову, то как правило не сильно лучшая, и выбор — дело вкуса. Как с «картинками» и «сопроцедурами», например.
"именованная инициализация" выглядит более уместной с учётом того, что уже есть понятие "передача параметров по имени"
Имею это издание в бумажном виде, про содержание ничего плохого говорить не буду, но оформление ужасное. То, что в "оригинальном авторском pdf" такая же сверкающая каша скриншотов разнокалиберных терминалов, не оправдание, я считаю. Можно было бы локализовать и это, оформив текстовый вывод программ в виде текста же. И нужно было это сделать, потому что почти каждый скрин на любой странице - это кровь из глаз. И пример сообщений об ошибках на стр.99, где текст в картинке настолько мелкий, что там не разобрать вообще ничего. И код на странице 163, где две строчки
sqr(5) : 25
sqr(a) : 25
нарисованы скриншотом на половину страницы. И такая дичь не единичные примеры из ряда вон, а "общий стиль".
Исходники набраны огромным шрифтом, из-за чего простейший пример расползается на целую страницу, а то и две. В исходниках тоже нет единообразия - какие-то напечатаны одним кеглем, рядом на соседней странице уже другим, где-то есть нумерация строк, где-то нет.
В общем, читать тяжело. Может быть, конечно, на это и расчёт, чтобы читатель не бежал в комфортном режиме взглядом по строчкам, а продирался сквозь оформление с чувством и паузами на отдохнуть-подумать. Но скорее всего просто сделали в режиме "и так сойдёт"
Вот несколько примеров страниц, взятых почти наугад, если ещё полистать можно еще таких же добавить, да там все такие.







книга Скотта Мейерса «Эффективный и современный C++»
Книга хорошая, но надо иметь ввиду, что там про C++11 и C++14.
Книгу не читал, скриншоты запостили, конечно, забавные, но некритичные.
Переводить техническую литературу, как было подмечено в статье - боль/страдание и перевод технических терминов в другой язык гарантировано будет проблема. Особенно учитывая, что много кто (если не большинство), в связи с работой с англоговорящими коллегами будет использовать английский вариант.
Вы меня, конечно, простите, но любой опытный программист читает любую техническую литературу на английском лучше, чем на русском. Так что этот перевод ориентирован на неопытных как раз, которые предпочтут русский. Я, например, всегда выбираю Английский для технических книг, статей, документации, потому что перевод на русский в 100% случаях корявый..
Кстати да, для designated initializers лучше подходит перевод «именованные инициализаторы», но тут косяк скорее в самом стандарте, в других языках такой тип инициализации называется как раз named initialization.
Обзор книги «С++ 20 в деталях»: доступно, но не для джунов