Опять был нужен какой-то инструмент, который делает очень полезные для мега-узкого круга людей вещи - берёт набор байт и разными способами их визуализирует - глядишь, подсказка и проявится.
На пресловутом Old-Games.RU в своё время тоже такую приблуду соорудили. Называлась она GBS, или GraphBitStreamer. С её помощью я 14 лет назад перевёл Alley Cat 1984 года. Вдруг тоже полезно будет.
P.S. У меня одного перестала работать вставка текста в поле ввода комментария? Хабр просто не реагирует ни на Ctrl+V, ни на Shift+Insert, ни на "Вставить" в контекстном меню по правому клику мышкой. Из-за этого пришлось набирать цитату и ссылки вручную...
Вариант с try-catch многословнее, т.к. deallocate придется вызвать в двух ветках: основной, когда исключение не вылетело, и в блоке catch.
Вызовы deallocate здесь подразумевают разные параметры (в случае ошибки - новый буфер, в случае успеха - старый), что Вы маскируете через std::swap (и заодно ещё зачем-то обмениваете _capacity с next_capacity вместо простого присваивания). Не, я понимаю, конечно, что в C++ нет finally до сих пор, а deref удобнее, но в примерах важнее всего простота и наглядность.
Спасибо, интересный вопрос подняли - придётся поправить это в Gena. Но увы, написана статья весьма скверно, мысль по ней скачет как ошалелая.
В частности, сильно обескуражили (и стоили мне часа три раздумий в фоне) вот эти пассажи:
Готово, написали корректную реализацию, которая приводит к UB в интересующем случае?
"Корректная" реализация приводить к UB не может по определению. Я понимаю, что Вы намеренно писали так, чтобы "подвоха" имелась при соблюдении буквы стандарта, но здесь выбрано не то слово.
Оговорка для случая, не относящегося к нашей перегрузке push_back (когда копирующий конструктор недоступен, а перемещающий выбрасывает исключение), не очень интересна. А вот первое требование фатально нарушено.
Тут до меня смысл сказанного добрался уже далеко не так быстро. Если по порядку, то:
"Первое требование" это какое? В цитате из стандарта, здесь упомянутой, непонятен порядок следования and и or, поэтому уразуметь под "первым" тут можно разные вещи:
If an exception is thrown while inserting a single element at the end and T is Cpp17CopyInsertable or is_nothrow_move_constructible_v is true
If an exception is thrown while inserting a single element at the end and T is Cpp17CopyInsertable
If an exception is thrown while inserting a single element at the end
T is Cpp17CopyInsertable(поскольку идёт первым в or-подвыражении)
Про очерёдность логических операций и устранение её неоднозначности (скобками в арифметике, запятыми в грамматике) эти славные люди, видимо, ни сном ни духом.
Почему читатель должен счесть это требование нарушенным? Ваша статья описывает случай "while inserting a single element at the end" начиная прямо с заголовка, и пришлось пролистать её до конца, дабы хоть как-то понять, что здесь имеется в виду не вставка элемента в конец как таковая, а сам момент его помещения в новое место в памяти. Который потому и должен происходить до перекладывания остальных элементов, а не после.
Возможно безопасность исходного примера неявно следует из этого утверждение?
Чтобы было понятно, о каком "исходном примере" здесь идёт речь, это предложение должно начинать собой новый абзац.
Объект _ при завершении своей жизни (выход из области 3-14)
Он и при выходе из функции уничтожился бы. Зачем там лишняя область видимости? Не говоря уже о том, чем это лучше обычного try {} catch.
Это была SpaceX офиц трансляция, но потом они в Х ушли показывать полёт, а поставили эту заглушку, поменяли ссылку на эту трансляцию https://youtu.be/lFkqZF-Ss7o
Заглушку с криптоскамом? Вы серьёзно?) SpaceX с недавних пор ведёт прямые эфиры только в X (бывшем Twitter), не на YouTube.
Другой вопрос в том, а нужна ли вообще в математических описаниях память? На мой взгляд, математика — это в первую очередь специальный язык рассуждений, который принципиально лишён разночтений, но взамен снабжён правилами вывода, что и позволяет ему описывать и исследовать действительность точным образом. Вот здесь у меня заметка была на эту тему в виде комментария, вдруг интересно будет: http://stolyarov.info/guestbook/archive/8/#cmt244
Такой вопрос: если в математике нет экземпляров, то над чем же тогда оперируют ряды и числовые последовательности, а также любые другие объекты, применяющие счётную (индексную) нотацию ? И мимолётом: если не секрет — почему самую первую статью (https://habr.com/ru/articles/751058/) скрыли?
Вы в курсе в чём разница между гражданством и национальностью?
А Вы в курсе, в чём разница между национальной принадлежностью и этническим происхождением? Ну так, если понятия немного причесать для большей точности высказываний.
Там у русских академиков до последнего шла борьба за бит и байт.
За бит и октет, если быть терминологически точнее. То есть за двоичные цифры (сигнальные единицы) и байт из восьми таких цифр. А важно это было потому, что несовместимые по этим параметрам машины было невозможно связывать между собой без отдельных блоков сопряжения — тогда ещё не знали микроконтроллеров, а вилки и разъёмы D-sub вообще считались образцом малоразмерности.
Как интересно, одно слово «профессорка» делает статью «целиком нарушающей правила русского языка».
Прежде всего, оно выдаёт в Вас однозначно заидеологизированного человека. Образование феминитивов в русском языке строго через "-ка", "-са" и "-иня" — это признак вполне себе конкретной группы людей со вполне себе конкретным радикальным дискурсом и человеконенавистническими нарративами. Сигнальная риторика, проще говоря. А почему? Потому что в русском языке уже полтораста лет как существует нормативный способ образования существительных женского рода, по которому феминитив от слова "профессор" — это профессорша. А знаете, из-за чего он применяется лишь при особой на то необходимости? Потому что грамматический род в общем случае не совпадает с биологическим. Слово "машина" женского рода не из-за половых признаков, а слово "участники", в отличие от "участницы", охватывает и мужчин, и женщин. Но почему-то ни одному мужчине не придёт в голову жаловаться на отсутствие явной представленности своего пола во множественном числе.
Просто Вы передираете риторику с английского языка абсолютно бездумно и не утруждая себя какой-либо рефлексией — то есть в духе обыкновенного постсоветского карго-культа западных практик. Хотя в английском языке во-первых нет грамматического рода в принципе, а во-вторых там, что самое смешное, феминитивы предлагается наоборот устранять — как излишне акцентирующие внимание на пол человека. То есть чтобы не actress, а actor, без "сексуальной объективации". Но это ведь куда более скучные подробности, чем чувство причастности к модной субкультуре вкупе с ощущением борьбы за всеобщее уравнивание и земшарную справедливость, верно же‽
Если уж затронута тема общения по линиям проводного радиовещания, а не только телефонии, то почему не упомянули такое явление как радиосвязь на средних волнах в конце шкалы радиоприемника. В конце 70-х там и музыку крутили и общение было . Речь не идет про правильных радиолюбителях на 160 или 80м диапазоне.
Звучит очень интересно. Можете рассказать поподробнее? Если есть, где почитать про это - ещё лучше.
Вот именно, поэтому понимают что просто наличие полезных ископаемых "ничего не означает".
К слову, если пересчитывать количество полезных ископаемых по отношению к численности населения, то не так-то уж их в России и много по сравнению с какой-нибудь Туркменией или Саудовской Аравией. А если брать по величине территории, то и подавно. Один из самых известных медиа-мифов же, ещё из советских времён.
В итоге имеем заброшенный mypal. Причем последняя версия к pale moon вообще отношения не имела и была основана на прямую на базе firefox. Но кое кто всё равно плакал и стонал что его обижают.
Так забросили только вариант на основе Pale Moon, а вариант на основе Firefox и дальше продолжает разрабатываться: https://github.com/Feodor2/Mypal68/
Там же, откуда родили. Историю знать надо.
https://ru.wikipedia.org/wiki/Обесценение_накоплений_граждан_СССР_(1990—1992)
На пресловутом Old-Games.RU в своё время тоже такую приблуду соорудили. Называлась она GBS, или GraphBitStreamer. С её помощью я 14 лет назад перевёл Alley Cat 1984 года. Вдруг тоже полезно будет.
https://www.old-games.ru/forum/threads/gbs.59696/
https://www.old-games.ru/forum/threads/vechnyj-vopros.44904/
https://github.com/old-games/GBS
P.S. У меня одного перестала работать вставка текста в поле ввода комментария? Хабр просто не реагирует ни на Ctrl+V, ни на Shift+Insert, ни на "Вставить" в контекстном меню по правому клику мышкой. Из-за этого пришлось набирать цитату и ссылки вручную...
Это не фонограф, а фоноавтограф.
Вызовы
deallocate
здесь подразумевают разные параметры (в случае ошибки - новый буфер, в случае успеха - старый), что Вы маскируете черезstd::swap
(и заодно ещё зачем-то обмениваете_capacity
сnext_capacity
вместо простого присваивания). Не, я понимаю, конечно, что в C++ нетfinally
до сих пор, аderef
удобнее, но в примерах важнее всего простота и наглядность.Спасибо, интересный вопрос подняли - придётся поправить это в Gena. Но увы, написана статья весьма скверно, мысль по ней скачет как ошалелая.
В частности, сильно обескуражили (и стоили мне часа три раздумий в фоне) вот эти пассажи:
"Корректная" реализация приводить к UB не может по определению. Я понимаю, что Вы намеренно писали так, чтобы "подвоха" имелась при соблюдении буквы стандарта, но здесь выбрано не то слово.
Тут до меня смысл сказанного добрался уже далеко не так быстро. Если по порядку, то:
"Первое требование" это какое? В цитате из стандарта, здесь упомянутой, непонятен порядок следования and и or, поэтому уразуметь под "первым" тут можно разные вещи:
If an exception is thrown while inserting a single element at the end and T is Cpp17CopyInsertable or is_nothrow_move_constructible_v is true
If an exception is thrown while inserting a single element at the end and T is Cpp17CopyInsertable
If an exception is thrown while inserting a single element at the end
T is Cpp17CopyInsertable
(поскольку идёт первым в or-подвыражении)
Про очерёдность логических операций и устранение её неоднозначности (скобками в арифметике, запятыми в грамматике) эти славные люди, видимо, ни сном ни духом.
Почему читатель должен счесть это требование нарушенным? Ваша статья описывает случай "while inserting a single element at the end" начиная прямо с заголовка, и пришлось пролистать её до конца, дабы хоть как-то понять, что здесь имеется в виду не вставка элемента в конец как таковая, а сам момент его помещения в новое место в памяти. Который потому и должен происходить до перекладывания остальных элементов, а не после.
Чтобы было понятно, о каком "исходном примере" здесь идёт речь, это предложение должно начинать собой новый абзац.
Он и при выходе из функции уничтожился бы. Зачем там лишняя область видимости? Не говоря уже о том, чем это лучше обычного
try {} catch
.И так далее. Было очень тяжело читать, извините.
Никуда - я указал две наиболее близкие к 2006 году, плюс 2016 из-за схожести в написании.
Не-а. Server 2003 знать, 2008 и 2016 знать, 2006 - не знать. Не говоря уже про "работает - и славно".
ссылка дохлая
Выглядит как очень нелепый damage control, если честно.
Заглушку с криптоскамом? Вы серьёзно?)
SpaceX с недавних пор ведёт прямые эфиры только в X (бывшем Twitter), не на YouTube.
Спасибо за ответ.
Другой вопрос в том, а нужна ли вообще в математических описаниях память? На мой взгляд, математика — это в первую очередь специальный язык рассуждений, который принципиально лишён разночтений, но взамен снабжён правилами вывода, что и позволяет ему описывать и исследовать действительность точным образом. Вот здесь у меня заметка была на эту тему в виде комментария, вдруг интересно будет: http://stolyarov.info/guestbook/archive/8/#cmt244
Такой вопрос: если в математике нет экземпляров, то над чем же тогда оперируют ряды и числовые последовательности, а также любые другие объекты, применяющие счётную (индексную) нотацию ?
И мимолётом: если не секрет — почему самую первую статью (https://habr.com/ru/articles/751058/) скрыли?
А Вы в курсе, в чём разница между национальной принадлежностью и этническим происхождением? Ну так, если понятия немного причесать для большей точности высказываний.
За бит и октет, если быть терминологически точнее. То есть за двоичные цифры (сигнальные единицы) и байт из восьми таких цифр. А важно это было потому, что несовместимые по этим параметрам машины было невозможно связывать между собой без отдельных блоков сопряжения — тогда ещё не знали микроконтроллеров, а вилки и разъёмы D-sub вообще считались образцом малоразмерности.
Всегда было интересно, какой именно из них снят с натуры, а какой впечатан.
(inb4: оба)
Прежде всего, оно выдаёт в Вас однозначно заидеологизированного человека. Образование феминитивов в русском языке строго через "-ка", "-са" и "-иня" — это признак вполне себе конкретной группы людей со вполне себе конкретным радикальным дискурсом и человеконенавистническими нарративами. Сигнальная риторика, проще говоря. А почему? Потому что в русском языке уже полтораста лет как существует нормативный способ образования существительных женского рода, по которому феминитив от слова "профессор" — это профессорша. А знаете, из-за чего он применяется лишь при особой на то необходимости? Потому что грамматический род в общем случае не совпадает с биологическим. Слово "машина" женского рода не из-за половых признаков, а слово "участники", в отличие от "участницы", охватывает и мужчин, и женщин. Но почему-то ни одному мужчине не придёт в голову жаловаться на отсутствие явной представленности своего пола во множественном числе.
Просто Вы передираете риторику с английского языка абсолютно бездумно и не утруждая себя какой-либо рефлексией — то есть в духе обыкновенного постсоветского карго-культа западных практик. Хотя в английском языке во-первых нет грамматического рода в принципе, а во-вторых там, что самое смешное, феминитивы предлагается наоборот устранять — как излишне акцентирующие внимание на пол человека. То есть чтобы не actress, а actor, без "сексуальной объективации". Но это ведь куда более скучные подробности, чем чувство причастности к модной субкультуре вкупе с ощущением борьбы за всеобщее уравнивание и земшарную справедливость, верно же‽
Звучит очень интересно. Можете рассказать поподробнее? Если есть, где почитать про это - ещё лучше.
К слову, если пересчитывать количество полезных ископаемых по отношению к численности населения, то не так-то уж их в России и много по сравнению с какой-нибудь Туркменией или Саудовской Аравией. А если брать по величине территории, то и подавно. Один из самых известных медиа-мифов же, ещё из советских времён.
Так забросили только вариант на основе Pale Moon, а вариант на основе Firefox и дальше продолжает разрабатываться: https://github.com/Feodor2/Mypal68/
Да вот что-то совсем ничего не гуглится. Ни по "new pale moon", ни по "new moon".